我正在尝试使用easy_install安装以egg格式打包的python脚本。问题是easy_install将依赖项下载到/ tmp。但是,我的tmp目录只有4mb的可用空间(我正在使用NAS驱动器,以这种方式设置)。
有没有办法指定下载目录? --help似乎没有任何有用的东西。
修改
更多细节:
我正在运行从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
谢谢,
杰克
答案 0 :(得分:16)
设置TMPDIR环境变量,如下所示:
export TMPDIR="/opt/tmp"
我认为这比重写easy_install.py更好。您需要确保路径存在。
答案 1 :(得分: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安装在硬盘驱动器上并且有足够的可用空间。
我不是python专家(从未使用它编程),但似乎-b选项与文件下载的位置无关。
答案 2 :(得分:4)
easy_install -b wherever
或
easy_install --build-directory wherever
答案 3 :(得分:0)