我使用pythonvirtualenv
工具创建了一个新的虚拟环境。在
virtualenv venv
然后我激活了虚拟环境
^{pr2}$然后我做了一个pip freeze
这就是我得到的:
(venv)$ pip freeze
Flask==0.10.1
Werkzeug==0.9.6
itsdangerous==0.24
lxml==3.4.0
numpy==1.9.1
pdir==0.2.2
virtualenv==1.11.6
wsgiref==0.1.2
我想知道,当我甚至没有在虚拟环境中显式地安装任何东西时,怎么会安装这么多库。在
更新1:当一些答案建议时,我在第1步中也使用了virtualenv --no-site-packages
来创建一个新的venv,但同样的问题仍然存在。好像用这个论点根本没有效果。在
更新2:我能够解决问题,并将我的经验发表在下面。正如评论中指出的,这里有一个相关的问题,link,它帮助我解决了这个问题。在
我能解决这个问题。在我的~/.bash_配置文件中,我遇到了以下一行,这导致了一个问题:
正如martinlewis在对这个related question的回答中指出的,
no-site-packages
将从搜索路径. 但标准Python路径中的任何其他内容仍将保留。在附言:我仍然不知道为什么virtualenv是这样工作的。为什么要包括PYTHONPATH上的包呢。但至少知道这能解决我的问题。在
这些是已经在您的系统上全局安装的库。在
最佳实践是在创建virtualenv时使用^{} 选项,以避免这个问题。在
参见documentation - The system-site-packages Option:
这些库已安装在您的系统中。除非指定
no-site-packages
,否则它们将被继承。在相关问题 更多 >
编程相关推荐