我在Ubuntu 13.10笔记本电脑上从源代码构建了Python 3.3.0。
使用/usr/bin/virtualenv -p /python3.3.0/bin/python3 foo_virt
命令创建虚拟环境时,我发现在运行pip freeze
时没有安装任何模块,这是我期望的行为。
使用/python3.3.0/bin/python3 -m venv foo_virt
时,我看到安装了大量模块:
(foo_virt) user@laptop:/foo_virt$ /usr/bin/pip freeze --local
Jinja2==2.7
Mako==0.8.1
MarkupSafe==0.15
PAM==0.4.2
Pillow==2.0.0
Pygments==1.6
SecretStorage==1.0.0
... (total of 75 modules listed)
我尝试按照模块的文档python3 get-pip.py
运行,为该特定版本的Python安装pip。但我仍然看到所有这些模块:
(foo_virt) user@laptop:/foo_virt$ which pip
/foo_virt/bin/pip
(foo_virt) user@laptop:/foo_virt$ pip freeze --local
Jinja2==2.7
Mako==0.8.1
MarkupSafe==0.15
PAM==0.4.2
Pillow==2.0.0
Pygments==1.6
SecretStorage==1.0.0
... (still 75 modules)
如何使用venv
,因此虚拟环境中没有安装任何模块?我没有在文档中找到任何帮助我的选项。此外,Windows 7上没有发生此问题。谢谢!
答案 0 :(得分:1)
bash缓存通过搜索PATH
找到的命令。您可以输入hash
来查看当前缓存。添加-r
会重置缓存。 -d
将删除个人姓名。获取激活脚本应重置缓存:
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
hash -r
fi
也许你在get-pip.py之前运行了系统pip。在这种情况下,hash -d pip
解决了这个问题。