我使用python virtualenv
工具创建了一个新的虚拟环境。
virtualenv venv
然后我激活了虚拟环境
source venv/bin/activate
然后我做了一个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,这有助于我解决问题。
答案 0 :(得分:2)
这些是已在您的系统上全局安装的库。
最佳做法是在创建virtualenv时使用--no-site-packages
选项,以避免出现这个问题。
答案 1 :(得分:0)
请参阅documentation - The --system-site-packages Option:
如果您使用
virtualenv --system-site-packages ENV
构建虚拟 环境将从中继承包 /usr/lib/python2.7/site-packages (或者你的全局 site-packages目录是)。如果您可以控制全局站点包,则可以使用此选项 目录,你想依赖于那里的包。如果你想 与全局系统隔离,请勿使用此标志。
这些库已安装在您的系统中。除非您指定--no-site-packages
,否则它们将被继承。
答案 2 :(得分:0)
我能够解决问题。在我的〜/ .bash_profile文件中;我有以下行创建了一个问题:
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
正如Martin Lewis在对此related question的回答中指出的那样,--no-site-packages
将从sys.path中删除标准的site-packages目录。但是仍然存在标准Python路径中的任何其他内容。
答案 3 :(得分:0)
“骇客”解决方案将是激活虚拟环境并运行
pip freeze | xargs pip uninstall -y
这将卸载所有不需要的软件包。