web-dev-qa-db-ja.com

使用可能な一時ディレクトリが見つかりません

一時ディレクトリを見つけようとしていますが、ディレクトリを取得しようとすると

tempfile.gettempdir()

それは私にエラーを与えています

 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']

ディレクトリーの許可は、rootが所有する777です。

43
OpenCurious

この種のエラーは2つのケースで発生しました

  1. 許可(drwxrwxrwtであり、rootが所有する必要があります)
  2. space

スペース(ディスク使用量)を確認するには、ターミナルでコマンドを実行するだけです

df -h

UNIXのディスク使用量をリストし、次のような出力を取得します

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

ルート(/にマウント)の使用率が100%の場合。

Tmpディレクトリを削除するか、マシンを再起動するか、ルートにスペースを確保する必要があります。

63
Atul Arvind

このエラーは、ファイルシステムが読み取り専用モードに切り替えられたときに発生する可能性があります。

10
Chris Mutel

Dockerでpythonスクリプトを実行しているときに同じ問題が発生しました。次のコマンドで修正されました。

docker rmi $(docker images --quiet --filter "dangling=true")
5

/にスペースがないときに同じ問題が発生しました。

問題:

ファイル「/usr/lib64/python2.6/tempfile.py」、201行目、_get_default_tempdir( "%sに使用可能な一時ディレクトリが見つかりません"%dirlist))
 IOError:[Errno 2]使用可能な一時ファイルはありません['/ tmp'、 '/ var/tmp'、 '/ usr/tmp'、 '/'で見つかったディレクトリ[失敗] 

[root @ master hue]#df -h

使用されるファイルシステムサイズ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

私はいくつかのスペースを空けたとき、それは私のためにうまくいった。

[root @ master log]#service hue start

開始色相:[OK]

[root @ masterログ]#

2
Ajit K'sagar

inodeが満杯の場合にも問題が発生する可能性があります。

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
0
Yuukoo

間違いなくディスク容量の問題、

端末でdf -hと入力すると、次のような出力が表示されます(ファイルシステムの1つで100%に注意してください)

$ 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

この場合、パスルート/上のファイル、アーティファクトフォルダーなどを削除して、スペースを確保する必要があります。

0
Edwin Ikechukwu

Windows 7x64マシンでも同じ問題が発生しました。ディスク容量とパーミッションは問題ありませんでした。

実行したとき

tempfile.mkdtemp(prefix='MyPrefix_')

手動でpythonコンソールディレクトリ%TEMP%\MyPrefix_xxxxは正常に作成されました。しかし、スクリプトから同じことをしたとき、エラーIOError: [Errno 2] No usable temporary directory found in [...]

dirパラメーターを使用して問題を解決しました。

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

その後、スクリプトからうまくいきました。

0
and1er