【问题标题】:Excluding system-wide packages in a virtualenv in PyCharm在 PyCharm 的 virtualenv 中排除系统范围的包
【发布时间】:2015-10-20 07:00:18
【问题描述】:

我创建了一个虚拟环境。这是我安装的第三方包。

(zhihu-py3)
laike9m@laike9m  ~/D/P/E/z/zhihu-py3   master 
❯ pip freeze                                                                                                                       
beautifulsoup4==4.4.1
html2text==2015.6.21
requests==2.8.1
zhihu-py3==0.2.5

但是,当我进入 PyCharm 中的“项目解释器”页面时,它列出了我在系统范围内安装的所有包,这真的很烦人。

我怎样才能使这些包不显示?我只想查看安装在这个特定 virtualenv 中的那些。

编辑
虽然--no-site-packages 参数适用于 Python2,但如果我使用 Python3 创建 virtualenv,它就不起作用

我用--no-site-packagesarguemnt 重新创建了这个虚拟环境:

(zhihu-py3)
laike9m@laike9m  ~/D/P/E/zhihu-py3 
❯ pip freeze                                                                                                          
wheel==0.24.0

请注意,no-global-site-packages.txt 确实存在。

laike9m@laike9m  ~/D/P/E/zhihu-py3 
❯ ll lib/python3.5/ | grep no-gl                                                                                                    
-rw-r--r--   1 laike9m  staff      0 Oct 21 15:03 no-global-site-packages.txt

但是,PyCharm 仍然从系统范围加载所有包。

我尝试从 Pycharm 的“解释器路径”设置中删除路径。它只显示“已被用户删除”,但从未真正删除过这些路径

现在我怀疑这是 PyCharm 的一个错误。

其他一些信息:
系统:OS X 10.10.5
PyCharm 版本:4.5.4
Python3.5 通过 homebrew 安装在以下位置:/usr/local/Cellar/python3/3.5.0/

编辑2
PyCharm 支持团队说:

PyCharm 使用 sys.path 这对你来说是错误的。如您所见,它适用于 2.7 版本,因此问题是特定于 Python,而不是 PyCharm。

Python 社区的人会帮助你。它不是 PyCharm 特有的。

【问题讨论】:

  • 您是否尝试过使用virtualenv --no-site-packages my-venv-folder 从命令行创建virtualenv?完全猜测,不知道是否相关。
  • 不,我没有。猜猜这就是原因。
  • @MikkoOhtamaa 我测试了它,它确实有效。您可以发布答案,我会接受。顺便说一句,在给定已创建的 virtualenv 的情况下,您知道如何进入“无站点包”状态吗?
  • 虚拟环境不是要修复而是重建。所以只是从头开始创建。执行pip freeze 并从requirements.txt 列表中手动选择包进行pip 安装。
  • @MikkoOhtamaa “从头开始创建”是否意味着“在终端中创建”?如果是这样,那就是我所做的。

标签: python virtualenv pycharm


【解决方案1】:

使用virtualenv --no-site-packages my-venv-folder 从命令行创建virtualenv。这样,系统范围的 Python 安装 (site-packages) 中已经安装的包不会反映在虚拟环境中。

【讨论】:

  • 它不适用于 Mac 上的 Python3。我不知道为什么。
  • 对于 python3,您可能需要在 virtualenv 命令中添加 ` -p /usr/bin/python3 ` 选项(使用与您的机器相关的路径)
  • 另外,如果你使用 Homebrew,你可以使用 virtualenv3.4 命令。
  • @stellasia 我知道,我确实添加了-p pathtopython3
  • @laike9m:你能编辑问题并添加相关的 OSX 错误吗?
猜你喜欢
  • 2014-09-24
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 2015-09-16
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多