2012-04-04 47 views
4

我想爲python 2.6安裝Sphinx 1.1.3。但是,我沒有sudo權限。因此,而不是將它安裝在默認位置,我想使用--prefix來設置不同的位置。執行以下操作:Easy_install的--prefix選項不會改變它試圖安裝我的包的地方

-bash-3.2$ easy_install Sphinx-1.1.3-py2.6.egg --prefix=/homes/ndeklein/python2.6/site-packages/ 

給我:

error: can't create or remove files in install directory 

The following error occurred while trying to add or remove files in the 
installation directory: 

[Errno 13] Permission denied: '/usr/lib/python2.4/site-packages/test-easy-install-18534.write-test' 

The installation directory you specified (via --install-dir, --prefix, or 
the distutils default setting) was: 

/usr/lib/python2.4/site-packages/ 

上午我打字有點毛病前綴?另外,我可以使用什麼(我已經與其他軟件包一起使用):

python setup.py install --home=/homes/ndeklein/python2.6/site-packages/ 

但我無法找到setup.py腳本。我猜EGGs沒有setup.py腳本,這是真的嗎?

回答

4

本網站討論非root python安裝。這可能是對你有用...

http://www.astropython.org/tutorials/user-rootsudo-free-installation-of-python-modules7/

引述的一點點:

用戶配置文件〜/ .pydistutils.cfg,將覆蓋內部系統路徑對於python包安裝,將構建的庫(lib),腳本(bin)和數據(share)重定向到用戶擁有的和指定的目錄。您必須簡單地告訴python安裝程序這些目錄所在的位置。

用戶文件〜/ .pydistutils.cfg,有以下線,採用了非常明顯的語法:

[install] 
install_scripts = ~/usr/bin 
install_data = ~/usr/share 
install_lib = ~/usr/lib/python2.4/site-packages 

當然,你指定的任何目錄有可能應該存在,你應該把他們在您的PYTHONPATH的面前:

export PYTHONPATH=~/usr/lib/python2.4/site-packages:${PYTHONPATH} 

它也像更現代的Python安裝(與事中的鏈接)應該能夠使用~/.local目錄:

easy_install --prefix=~/.local ... 

還有:

easy_install --user ... 

這將安裝到用戶特定的站點目錄。

+0

Appareantly的源代碼也有setup.py,所以我用這一點,但它becasue是一個非常方便的鏈接我接受你的回答。 – 2012-04-04 12:01:06

+0

是的,我剛剛發現這個鏈接有一天,我的一個同事...以前,當我沒有根,我安裝了一個私人版本的蟒蛇(我想要2.7無論如何...),但我書籤鏈接,因爲它看起來很有用。 – mgilson 2012-04-04 13:25:35

+0

死鏈接,如果你在答案中總結出來,它會很好... – 2016-07-07 23:27:09

6

你需要指定包之前的選擇,所以命令應該是:

easy_install --prefix=/homes/ndeklein/python2.6/site-packages/ Sphinx-1.1.3-py2.6.egg 
+0

剛剛解決了我的問題,並讓我的一天! – Joe 2015-05-15 10:01:33

相關問題