2013-02-14 76 views
2

我試圖運行一個python腳本,在服務器上調用yaml模塊。我只有在我的主目錄中寫入權限。該服務器已安裝Python 2.7.3。我沒有root權限。另外,pipeasy_install都不可用。如何在沒有ROOT ACCESS的情況下安裝python模塊YAML('easy_install'和'pip'不可用)?

我已經下載了包想跑

python setup.py install --user 

這給錯誤

error: can't combine user with with prefix/exec_prefix/home or install_(plat)base 

我怎樣才能得到這個工作?

+1

我唯一可以想到會是一個virtualenv。我沒有root權限,但是我創建了virtualenv並將'mypip'和'mython'符號鏈接添加到'〜/ bin',現在我有了自己的python安裝程序,並且每個模塊都是我希望的! http://pypi.python.org/pypi/virtualenv – tkbx 2013-02-14 01:37:03

+0

完美的作品,謝謝!我最終做的是下載['virtualenv.py'](https://raw.github.com/pypa/virtualenv/master/virtualenv.py),並簡單地運行指定一個文件夾'python virtualenv.py MYFOLDER' – user1895406 2013-02-14 02:12:59

+0

這有相同的錯誤和解決方案:http://stackoverflow.com/questions/4495120/combine-user-with-prefix-error-with-setup-py-install – 2014-01-23 11:15:59

回答

0

設置和使用virtualenv幾乎總是一個不錯的選擇,正如你所指出的,你可以下載virtualenv.py,但是如果沒有安裝pip,它將無法運行,因爲它會嘗試安裝輪子。在Linux Mint with Python 2.7.6上,腳本例如拋出:

OSError: Command /home/ruamel/venv/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools wheel failed with error code 1

你或許可以通過使用較舊的virtualenv.py來規避這種情況。

在某些其他情況下,使用virtualenv是不可行的。當系統python預先安裝了所有需要使用的庫並且不能複製到本地virtualenv中時。在這種情況下,您可以下載ruamel.yaml(我是其作者)的最新版本,它基本上是PyYAML功能的超集。當我分叉的代碼我創建了一個從無到有的setup.py,它可以讓你做

python setup.py install --user 

沒有問題從一封來自PyPI下載的tar.gz文件中提取的`setup.py。

0

基於由Anton答案的想法,這些步驟爲我工作

pip install --user ruamel.yaml 

然後在你的腳本替換

import yaml 

有:

from ruamel.yaml import YAML 
yaml=YAML(typ='safe') 
相關問題