首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >pip安装在全球站点包中而不是virtualenv?

pip安装在全球站点包中而不是virtualenv?
EN

Stack Overflow用户
提问于 2018-05-25 02:22:44
回答 2查看 0关注 0票数 0

使用pip在virtualenv中安装软件包会导致软件包安装在全局site-packages文件夹中,而不是在virtualenv文件夹中。以下是我在OS X Mavericks(10.9.1)上设置Python3和virtualenv的方法:

我使用Homebrew安装了python3:

代码语言:javascript
复制
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew install python3 --with-brewed-openssl

改变了$PATH.bash_profile中的变量; 添加了以下行:

代码语言:javascript
复制
export PATH=/usr/local/bin:$PATH

运行which python3返回/usr/local/bin/python3(在重新启动shell之后)。

注意:which python3仍然返回/ usr/bin/python虽然。

使用pip3安装virtualenv:

代码语言:javascript
复制
pip3 install virtualenv

接下来,创建一个新的virtualenv并激活它:

代码语言:javascript
复制
virtualenv testpy3 -p python3
cd testpy3
source bin/activate

注意:如果我没有指定-p python3,virtualenv中的bin文件夹中将缺少pip。

运行which pipwhich pip3返回virtualenv文件夹:

代码语言:javascript
复制
/Users/kristof/VirtualEnvs/testpy3/bin/pip3

现在,当我尝试在激活的virtualenv中使用pip安装例如Markdown时,pip将安装在全局site-packages文件夹中,而不是virtualenv的site-packages文件夹中。

代码语言:javascript
复制
pip install markdown

运行pip list退货:

代码语言:javascript
复制
Markdown (2.3.1)
pip (1.4.1)
setuptools (2.0.1)
virtualenv (1.11)

内容/Users/kristof/VirtualEnvs/testpy3/lib/python3.3/site-packages

代码语言:javascript
复制
__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

代码语言:javascript
复制
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/

正如你所看到的,全局站点包文件夹包含Markdown,而virtualenv文件夹不包含。

EN

回答 2

Stack Overflow用户

发布于 2018-05-25 11:02:31

请检查bin/pipbin/activate脚本。在bin/pip,看看shebang。这是对的吗?如果没有,更正它。然后42在你的线上bin/activate,检查你的virtualenv路径是否正确。它看起来像这样

代码语言:javascript
复制
VIRTUAL_ENV="/Users/me/path/to/virtual/environment"

如果它是错误的,纠正它,deactivate然后. bin/activate,如果我们的相互问题有同样的原因,它应该工作。如果它仍然没有,无论如何,你都在正确的轨道上。我which pip跟着堆栈跟踪一遍又一遍地完成了相同的问题解决程序,等等。

确保这一点

代码语言:javascript
复制
/Users/kristof/VirtualEnvs/testpy3/bin/pip3

是你想要的,而不是指另一个类似命名的测试项目(我有这个问题,并不知道它是如何开始的,我的怀疑是同时运行多个virtualenvs)。

票数 0
EN

Stack Overflow用户

发布于 2018-05-25 11:26:42

对我来说,这不是一个点子或virtualenv问题。这是一个python问题。在线教程后,我在〜/ .bash_profile(或〜/ .bashrc)中手动设置了我的$ PYTHONPATH。这个手动设置的$ PYTHONPATH在virtualenv中可用,因为它可能应该被允许。

此外add2virtualenv,由于某些原因,在virtualenv中没有将我的项目路径添加到我的$ PYTHONPATH中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档