使用pip3在a中安装软件包将virtualenv导致该软件包安装在global site-packages文件夹中,而不是在virtualenv文件夹中。这是我在OS X Mavericks(10.9.1)上设置Python3和virtualenv的方法:我使用Homebrew安装了Python3:ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"brew install python3 --with-brewed-openssl更改了中的$PATH变量.bash_profile;添加了以下行:export PATH=/usr/local/bin:$PATH运行which python3返回/usr/local/bin/python3(重新启动外壳程序之后)。注意:尽管which python3仍然返回/ usr/bin/python。virtualenv使用安装pip3:pip3 install virtualenv接下来,创建一个新的virtualenv并激活它:virtualenv testpy3 -p python3cd testpy3source bin/activate注意:如果不指定-p python3,则virtualenv中bin文件夹中将缺少pip。正在运行,which pip并且which pip3都返回virtualenv文件夹:/Users/kristof/VirtualEnvs/testpy3/bin/pip3现在,当我尝试在激活的virtualenv中使用pip安装例如Markdown时,pip将安装在全局site-packages文件夹中,而不是virtualenv的site-packages文件夹中。pip install markdown运行pip list收益:Markdown (2.3.1)pip (1.4.1)setuptools (2.0.1)virtualenv (1.11)内容/Users/kristof/VirtualEnvs/testpy3/lib/python3.3/site-packages:__pycache__/_markerlib/easy_install.pypip/pip-1.5.dist-info/pkg_resources.pysetuptools/setuptools-2.0.2.dist-info/内容/usr/local/lib/python3.3/site-packages:Markdown-2.3.1-py3.3.egg-info/__pycache__/easy-install.pthmarkdown/pip-1.4.1-py3.3.egg/setuptools-2.0.1-py3.3.eggsetuptools.pthvirtualenv-1.11-py3.3.egg-info/virtualenv.pyvirtualenv_support/如您所见,全局 site-packages文件夹包含Markdown,而virtualenv文件夹则不包含。注意:之前我在不同的VM上安装了Python2和Python3(遵循这些说明),并且Python3遇到了相同的问题。不过,在基于Python2的virtualenv中安装软件包的工作非常正常。任何提示,暗示……将不胜感激。
3 回答
富国沪深
TA贡献1790条经验 获得超9个赞
我也有这个问题。在我的Mavericks Mac上的Python 3.3虚拟环境中pip install <package_name>
的/bin
目录中调用会导致将Python程序包安装在Python 2.7全局站点程序包目录中。尽管我的$ PATH从包含目录开始pip
。奇怪的。在CentOS上不会发生这种情况。对我来说,解决方案是致电pip3
而不是pip
。当我已经安装了PIP通过在虚拟环境中ez_setup,三“画中画”的可执行文件已被安装在/bin
目录- pip
,pip3
和pip3.3
。奇怪的是,所有三个文件都完全相同。呼唤pip3 install <package_name>
导致将Python软件包正确安装到本地site-packages目录中。pip
使用完整路径名调用虚拟环境也可以正常工作。我很想知道为什么我的Mac为什么不像我期望的那样使用$ PATH。
添加回答
举报
0/150
提交
取消