在全局站点包中进行pip安装,而不是虚拟环境中。
在全局站点包中进行pip安装,而不是虚拟环境中。
使用pip3
在virtualenv
中安装包会导致该包被安装在全局的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
修改了.bash_profile
中的$PATH
变量,增加了以下一行:
export PATH=/usr/local/bin:$PATH
重新启动shell后,运行which python3
返回/usr/local/bin/python3
。
注意:虽然which python3
仍然返回/usr/bin/python
。
使用pip3
安装了virtualenv
:
pip3 install virtualenv
接下来,创建一个新的virtualenv
并激活它:
virtualenv testpy3 -p python3 cd testpy3 source 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.py pip/ pip-1.5.dist-info/ pkg_resources.py setuptools/ setuptools-2.0.2.dist-info/
/usr/local/lib/python3.3/site-packages
文件夹的内容:
Markdown-2.3.1-py3.3.egg-info/ __pycache__/ easy-install.pth markdown/ pip-1.4.1-py3.3.egg/ setuptools-2.0.1-py3.3.egg setuptools.pth virtualenv-1.11-py3.3.egg-info/ virtualenv.py virtualenv_support/
如你所见,全局的site-packages文件夹中包含Markdown,而virtualenv文件夹中没有。
注意:我之前在另一台虚拟机上安装了Python2和Python3(按照这些说明),并且在Python2的基于virtualenv的环境中安装包没有任何问题。
非常感谢任何提示、建议...。