2011-10-01 84 views
3

我想安裝一個使用easy_install打包成egg格式的python腳本。問題在於easy_install將依賴關係下載到/ tmp。但是,我的tmp目錄只有4mb的可用空間(我正在使用NAS驅動器,按此方式設置)。easy_install下載目錄

有沒有指定下載目錄的方法? - 幫助似乎沒有提出任何有用的東西。

編輯:

更多的細節:

,我從Optware公司安裝的Python 2.5.6和setuputils 0.6c11-2。 NAS是基於ARM的(特別是安裝了fun_plug的DNS-320)。如果您需要更多具體信息,請告訴我。

當我使用-b選項時,該文件仍然下載到/ tmp。這是事實,它使用TMP的剩餘空間提取過程:

easy_install-2.5 -b /mnt/HD/HD_a2/ffp/home/root SQLAlchemy==0.7.2 
Searching for SQLAlchemy==0.7.2 
Reading http://pypi.python.org/simple/SQLAlchemy/ 
Reading http://www.sqlalchemy.org 
Best match: SQLAlchemy 0.7.2 
Downloading http://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-0.7.2.tar.gz#md5=b84a26ae2e5de6f518d7069b29bf8f72 
Processing SQLAlchemy-0.7.2.tar.gz 
error: No space left on device 

我知道該文件被運行的ls -l/tmp目錄/在下載正在發生的事情下載到/ tmp目錄:

ls -l /tmp/easy_install* 
total 891 -rw-r--r-- 1 root root 901120 Oct 1 20:35 SQLAlchemy-0.7.2.tar.gz 

DF -h輸出:

Filesystem   Size Used Avail Use% Mounted on 
rootfs    9.7M 4.8M 4.5M 52%/
/dev/root    9.7M 4.8M 4.5M 52%/
/dev/loop0    23M 23M  0 100% /usr/local/modules 
/dev/mtdblock5  5.0M 464K 4.6M 10% /usr/local/config 
/dev/sda4    485M 16M 469M 4% /mnt/HD_a4 
/dev/sdb4    485M 11M 474M 3% /mnt/HD_b4 
/dev/sda2    1.8T 213G 1.6T 12% /mnt/HD/HD_a2 
/dev/sdb2    1.8T 69G 1.8T 4% /mnt/HD/HD_b2 
/dev/sda2    1.8T 213G 1.6T 12% /opt 

感謝,

傑克

回答

5

那麼這裏的解決方案,如果任何人的興趣。

編輯線/opt/lib/python2.5/site-packages/setuptools/command/easy_install.py 412:

tmpdir = tempfile.mkdtemp(prefix="easy_install-") 

到:

tmpdir = tempfile.mkdtemp(prefix="easy_install-",dir="/opt/tmp") 

這工作,因爲/ opt安裝在HDD上,並有足夠的可用空間。

我不是Python專家(從來沒有用它編寫過程),但它看起來像-b選項對文件的下載位置沒有影響。

+0

贊成雅!)歡迎來到SO! –

4
easy_install -b wherever 

easy_install --build-directory wherever 
+0

不幸的是,這不起作用 - 它仍然下載到/ tmp。一個錯誤可能? – Jack

+0

你可以提供一些關於你的設置的更多信息嗎?我剛剛嘗試過'easy_install -b some_test_directory bottle'在我的mbp(osx獅子)上,它運行良好 –

+0

感謝您的幫助!我在原始問題中提供了更多信息。 – Jack

0

hmmmmm,你可能軟符號鏈接是的/ tmp/easyinstall在啓動過程之前,另一個位置? 我不是一個專業的工具,所以這是一個想法,而不是解決方案

+1

謝謝,這是一個想法,但easy_install實際上會在目錄中附加一個隨機字符串,例如的/ tmp/easy_install的-XXXX。所以這可能是不可能的。 – Jack

16

設置TMPDIR環境變量,如以下幾點:

export TMPDIR="/opt/tmp" 

我覺得這是不是重寫easy_install.py更好的辦法。你需要確保路徑存在。