No usable temporary directory found

Question:

I am trying to find a temp directory ,
but when i am trying to get the directory using

tempfile.gettempdir()

it’s giving me error of

 File "/usr/lib/python2.6/tempfile.py", line 254, in gettempdir
    tempdir = _get_default_tempdir()
  File "/usr/lib/python2.6/tempfile.py", line 201, in _get_default_tempdir
    ("No usable temporary directory found in %s" % dirlist))
IOError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/home/openerp/openerp-server']

The permission on the directory is 777 owned by root.

Asked By: OpenCurious

||

Answers:

This kind of error occured in two case

  1. permission(should be drwxrwxrwt and owened by root)
  2. space

To check space(disk usage)just run the command on terminal

df -h

Will list the disk usage on unix and get the output like

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5        28G   15G   12G  58% /

If the root(mounted on /) usage is 100%.

You need to clean the tmp directory or restart the machine or make some space on the root.

Answered By: Atul Arvind

This error can occur when the file system has been switched to read-only mode.

Answered By: Chris Mutel

I got the same issue when there was no space on /.

Issue:

File "/usr/lib64/python2.6/tempfile.py", line 201, in _get_default_tempdir("No usable temporary directory found in %s" % dirlist))
IOError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']  [FAILED] 

[root@master hue]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/vg_master-lv_root

             35G   34G     0 100%     /

tmpfs
7.8G 72K 7.8G 1% /dev/shm

/dev/sda1
477M 34M 418M 8% /boot

When I cleared out some space then it worked fine for me.

[root@master log]# service hue start

Starting hue: [ OK ]

[root@master log]#

Answered By: AKs

definately a disk space issue,

on terminal, type df -h
you should see output like below ( notice the 100% on one of the filesystems)

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            992M     0  992M   0% /dev
tmpfs           200M   21M  179M  11% /run
/dev/xvda1      7.8G  7.8G  0  100% /
tmpfs          1000M     0 1000M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs          1000M     0 1000M   0% /sys/fs/cgroup
tmpfs           200M     0  200M   0% /run/user/997
tmpfs           200M     0  200M   0% /run/user/1042

in this case, you need to make space by deleting files, artifacts folders e.t.c on path root /

Answered By: Edwin O.

I had the same problem while running a python script in Docker. The following command fixed it for me:

docker rmi $(docker images --quiet --filter "dangling=true")
Answered By: Roozbeh Zabihollahi

Problem can also occur if inode are full.

You can type df -i

# df -i
Filesystem      Inodes   IUsed  IFree IUse% Mounted on
udev            253841     322 253519    1% /dev
tmpfs           255838     430 255408    1% /run
/dev/xvda1     5120000 5120000      0  100% /
tmpfs           255838       1 255837    1% /dev/shm
tmpfs           255838       7 255831    1% /run/lock
tmpfs           255838      16 255822    1% /sys/fs/cgroup
tmpfs           255838       4 255834    1% /run/user/1000
Answered By: Yuukoo

I had the same issue on the Windows 7×64 machine. It was OK with disk space and permissions.

When I excecuted

tempfile.mkdtemp(prefix='MyPrefix_')

manually in python console the directory %TEMP%MyPrefix_xxxx was successfully created.
But when I did the same from script I received the error IOError: [Errno 2] No usable temporary directory found in [...].

I solved the problem using dir parameter:

 # '.' is a default value for example
 tempfile.mkdtemp(prefix='MyPrefix_', dir=os.environ.get('TEMP', '.')) 

After that from script it worked well.

Answered By: and1er

I ran into this issue earlier today. I started a query embedded in jupyter before going to lunch, and I returned to jupyter throwing some type of error (can’t remember what it was exactly). When I tried restarting jupyter in the terminal, I got the error described in OP’s question (no usable temporary directory). The answers above didn’t work, so I tried restarting my entire VM, at which point I got the error described here. After following the instructions in that thread’s top answer, the problem was resolved.

Answered By: L. Taylor

I got this when my root drive (/dev/sda1) was corrupted on my Ubuntu.

Rebooted, got the error /dev/sda1 contains a file system with errors.

Followed instructions here: https://askubuntu.com/questions/885062/root-file-system-requires-manual-fsck, which was to fsck -y <dev/xxx reported to have error> twice. Then exit to reboot.

Answered By: Kashyap

The file system may have encountered an error and switched to read-only mode. This can usually be fixed with a reboot.

In my experience with Ubuntu, on reboot you are usually brought to a screen that says "/dev/sda6 contains a file system with errors, check forced." with a prompt that says (initramfs). You’ll need to run fsck /dev/sda6 (or swap that path out for wherever you have / mounted).

Answered By: bobe

I had this issue with my Kubernetes deployment that used a Python image and Gunicorn as the entrypoint. I had mistakenly set the following in the K8s config for the container:

securityContext:
  readOnlyRootFilesystem: true

Setting this to false, or removing it (it defaults to false), fixed the issue for me.

Answered By: Ben
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.