easy_install 下载目录

3 投票
4 回答
4358 浏览
提问于 2025-04-17 03:29

我正在尝试使用 easy_install 安装一个以 egg 格式打包的 Python 脚本。问题是 easy_install 会把依赖项下载到 /tmp 目录。然而,我的 tmp 目录只有 4MB 的可用空间(因为我在使用一个 NAS 硬盘,设置成这样)。

有没有办法指定下载目录?--help 似乎没有提供任何有用的信息。

编辑:

一些更多的细节:

我正在运行 Python 2.5.6 和从 optware 安装的 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

我知道文件是在 /tmp 中下载的,因为在下载进行时我运行了 ls -l /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

谢谢,

Jack

4 个回答

4
easy_install -b wherever

或者

easy_install --build-directory wherever
16

设置TMPDIR这个环境变量,方法如下:

export TMPDIR="/opt/tmp"

我觉得这样做比重新写easy_install.py要好。你需要确保这个路径是存在的。

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 这个选项和文件下载到哪里没有关系。

撰写回答