【问题标题】:Removing the symlink doesn't clear a package from the corresponding virtualenv删除符号链接不会从相应的 virtualenv 中清除包
【发布时间】:2017-08-28 11:26:12
【问题描述】:

我刚刚通过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 都有这个问题。)

【问题讨论】:

  • pip uninstall . 不会做你想做的事吗?
  • 是的 pip uninstall 确实做到了。可能是由于您在回答中提到的。谢谢!

标签: python virtualenv setuptools


【解决方案1】:

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

我发现通过 pip 使用项目目录中的pip install -e .(或任何地方的pip install -e [projectpath])安装 Python 包的开发版本要方便得多。使用 pip uninstall [packagename] 可以轻松删除以这种方式安装的软件包

【讨论】:

  • easy-install.pth 删除成功!我也可以使用pip uninstall 虽然我确实通过setup.py 安装了软件包。
  • @karlson 我错误地使用python3 -m pip install -e . 安装了一个模块,我尝试了所有可能的解决方案,但都不起作用。最后,感谢您的回答,包裹已成功移除。
  • 很高兴听到这个消息:)
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2018-12-01
    • 1970-01-01
    • 2011-02-27
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2020-10-19
    • 2014-11-11
    相关资源
    最近更新 更多