2013-07-31 28 views
4

我正在测试驱动Django 1.6b,Python 3.3.2(源码编译)和pyvenv与Ubuntu 12.04。pyvenv&pip未安装到本地站点包

每次我尝试安装执行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)

我缺少什么明显?

+0

你有没有修改'pyvenv'脚本?因为在我看来,即使激活'venv',你的'pip'仍然是全局的。 –

+0

嗨Hieu,我没有修改pyvenv脚本。我刚刚尝试通过virtualenv进行本地软件包安装(因为我更熟悉该工具),并且它在本地第一次安装。 –

回答

7

您是否已将setuptoolspip安装到环境中? virtualenvsetuptoolspip自动安装到新环境中。

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

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

常见安装工具,如分发和PIP按预期方式工作 与venvs - 即当VENV是积极的,他们安装Python包 到VENV而不需要被告知这样做的明确。 当然,您需要将它们安装到venv第一个:这可以是 通过运行distribute_setup.py并启用venv完成,然后通过运行easy_install pip跟随 。或者,您可以下载 源代码压缩包并在解压缩后运行python setup.py install, 激活venv。

+0

好吧,让你的'venv'或者我的'pyvenv-3.3'启动,然后安装'setuptools'。 https://pypi.python.org/pypi/setuptools/“distribute_setup.py”被合并回到'ez_setup.py'中[安装信息在这里](https://pypi.python.org/pypi/setuptools/#基于unix的系统包括mac-os-x)。然后使用'〜VIRTUAL_ENV/bin/easy_install pip'安装pip。一定要在你的venv里面使用'easy_install'和'pip' *来实现这一切。 – here

1

the official docs我想的Python 3.4会自动安装点子,但现在看来,它并不: 在3.4版本中更改:默认安装点子,增加了--without-PIP和--copies选项

编辑:不知何故,我设法使用也安装在该机器上的Python3.3.2版本。使用Python3.4,它按预期工作。