在全局站点包中进行pip安装,而不是虚拟环境中。

23 浏览
0 Comments

在全局站点包中进行pip安装,而不是虚拟环境中。

使用pip3virtualenv中安装包会导致该包被安装在全局的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 pipwhich 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的环境中安装包没有任何问题。

非常感谢任何提示、建议...。

0