2013-07-31 41 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,它按預期工作。