RDaneel
RDaneel

Reputation: 1

Python doesn't understand tmp folder on RAM drive

I am having lots of trouble installing pretty much any part of the Python ecosystem [on my Windows 10 x64 system]... it turns out that something in the Python runtime used by install scripts is being confused by my RAM drive -based "temp" folder.

While I do have a workaround, it means - JUST so I can do Python stuff - I need to set my TMP (and TEMP) to point to a real HDD/SSD - and that is really inconvenient, as NOTHING else I do currently on my Windows system is in the least bit troubled by my preferred TMP setting.

The 2 commands that have failed (and both were resolved by changing the TMP (and TEMP) setting as described above):

python get-pip.py
pip install --user pipenv

... note that both fail the same way, with something like (from the second command)

Collecting pipenv
  Downloading pipenv-2018.11.26-py3-none-any.whl (5.2 MB)
ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '\\Device\\ImDisk0\\pip-unpack-88i8f6t6\\pipenv-2018.11.26-py3-none-any.whl'

Note that TMP is actually set as C:\tmp, which is itself a mount of \\Device\\ImDisk0, set up by the ImDisk package on Windows (ImDisk Toolkit download).

I suspected a "sensitivity" to the actual implementation of c:\tmp since several years ago, the bash shell that comes with the Windows git install showed the same issue (they actually complained about some issue when doing a stat on the TMP folder and/or device) - but it got magically fixed on their end.

So, while I probably shouldn't hold my breath for a fix to this in the Python world, I wanted to bring it up in case anyone else is being driven crazy by this bug (and hey, it could get fixed).

Upvotes: 0

Views: 307

Answers (1)

linqo
linqo

Reputation: 657

All you should need to do is set the TMPDIR environment variable to the location where you want temporary files to be downloaded to.

Upvotes: 1

Related Questions