pyvenv和pip没有安装到本地的site-packages目录中

4

我正在测试 Django 1.6b,Python 3.3.2(从源代码编译),pyvenv 和 Ubuntu 12.04。

每次尝试执行 pip install [package] 时,包都会尝试全局安装而不是安装在本地环境中。一个简单的工作流程如下:

$ pyvenv environments/roebk

$ source environments/roebk/bin/activate

$ (roebk) pip install south

error: could not create '/usr/local/lib/python3.3/site-packages/south': Permission denied

我已经仔细检查了使用的 pip 版本。

$ pip -V pip 1.4 from /usr/local/lib/python3.3/site-packages/pip-1.4-py3.3.egg (python 3.3)

我是否漏掉了任何明显的内容?


你修改过 pyvenv 脚本吗?因为在你激活了 venv 后,我觉得你的 pip 仍然是全局的。 - Hieu Nguyen
嗨Hieu,我还没有尝试过pyvenv脚本。我只是尝试了通过virtualenv进行本地包安装(因为我更熟悉那个工具),并且第一次安装就成功了。 - Kristian Roebuck
2个回答

7

您是否已经在环境中安装了setuptoolspipvirtualenv会自动将setuptoolspip安装到新的环境中。

$ virtualenv qwerty 
New python executable in qwerty/bin/python
Installing setuptools............done. 
Installing pip...............done.
$ 

根据pyvenv文档,您需要手动将它们安装到新环境中

常用的安装工具(如Distribute和pip)与虚拟环境一起使用时能够正常工作,也就是说,在虚拟环境处于激活状态时,它们能够将Python包安装到虚拟环境中而无需明确告知。当然,在此之前,您需要将它们安装到虚拟环境中:您可以在激活虚拟环境后运行distribute_setup.py,然后运行easy_install pip。或者,您可以下载源代码压缩包,并在解压后激活虚拟环境后运行python setup.py install


好的,启动你的venv或者像我一样使用pyvenv-3.3,然后安装setuptools。https://pypi.python.org/pypi/setuptools/ distribute_setup.py已经与安装信息在此合并回到了ez_setup.py中。接下来使用~VIRTUAL_ENV/bin/easy_install pip来安装pip。请确保在所有这些操作中都要在你的venv内部使用easy_installpip才能正常工作。 - here

1

根据官方文档,我认为Python 3.4应该会自动安装pip,但事实并非如此:

在3.4版本中更改:默认安装pip,并添加了--without-pip和--copies选项。

编辑:不知何故,我还在该计算机上安装了Python3.3.2版本。使用Python3.4时,它按预期工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接