删除符号链接不会从相应的 virtualenv 中清除包

Removing the symlink doesn't clear a package from the corresponding virtualenv

我刚刚通过 setuptools 设置了一个示例项目。 setup.py 是:

from setuptools import setup

setup(
    name='test_project',
    version='0.1',
    packages=['test_project'],
    zip_safe=False
)

我通过 python setup.py develop 将这个包添加到我的 virtualenv 中,它在我的 virtualenv 中放置了一个相应的符号链接:./lib/python2.7/site-packages/test-project.egg-link.

要删除包,我认为从 virtualenv 中删除符号链接就足够了。但是删除符号链接后 python -c "import test_project" 仍然成功。还有我需要删除的缓存吗?

(我使用选项 --system-site-packages 创建了 virtualenv,如果它有任何重要性的话;这个包没有在系统范围内安装,即 python -c "import test_project" 在 vi​​rtualenv 之外失败。)

(我对 Python 2 和 Python 3 都有这个问题。)

您必须从站点包的 easy-install.pth 中删除您的包。在你的情况下应该是 ./lib/python2.7/site-packages/easy-install.pth

我发现从项目目录(或从任何地方 pip install -e [projectpath])通过 pip 使用 pip install -e . 安装 python 包的开发版本要方便得多。可以使用 pip uninstall [packagename]

轻松删除以这种方式安装的软件包

对我有用的解决方案。 它将在我们 运行 pip install -e . 所在的目录中创建一个 .egg-info 文件 转到该目录并删除 .egg-info 文件。 然后用 pip list

交叉检查