2011-10-01 133 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更好的办法。你需要确保路径存在。