Search code examples
pythoneasy-install

easy_install downloading directory


I'm trying to install a python script packaged in egg format using easy_install. The problem is that easy_install downloads dependencies to /tmp. However, my tmp dir only has 4mb of free space (I am working with a NAS drive, set up this way).

Is there a way of specifying the download directory? --help doesn't seem to throw up anything useful.

Edit:

Some more details:

I'm running python 2.5.6 and setuputils 0.6c11-2 installed from optware. The NAS is ARM based (specifically the DNS-320 with fun_plug installed). Please let me know if you'd like any more specific info.

When I use the -b option, the file is still downloaded to /tmp. It is in fact the extraction process which which uses the remaining space in 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

I know the file is downloaded into /tmp by running ls -l /tmp/ while the download is happening:

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 output:

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

Thanks,

Jack


Solution

  • Well here's the solution if anyone's interested.

    Edit line 412 of /opt/lib/python2.5/site-packages/setuptools/command/easy_install.py from:

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

    to:

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

    This works, as /opt is mounted to the HDD and has plenty of free space.

    I'm no python expert (never programmed with it), but it seems like the -b option has no bearing on where the file is downloaded to.