找不到可用的临时目录

时间:2013-06-08 04:42:05

标签: python odoo

我正在尝试查找临时目录, 但是当我试图使用

获取目录时
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。

9 个答案:

答案 0 :(得分:54)

这种错误发生在两种情况下

  1. 权限(应为drwxrwxrwt并由root拥有)
  2. space
  3. 要检查空间(磁盘使用情况),只需在终端上运行命令

    df -h
    

    将在unix上列出磁盘使用情况并获得类似

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

    如果root(安装在/上)使用率为100%。

    您需要清理tmp目录或重新启动计算机或在根目录上留出一些空间。

答案 1 :(得分:10)

当文件系统切换到只读模式时,可能会发生此错误。

答案 2 :(得分:4)

在Docker中运行python脚本时,我遇到了同样的问题。以下命令为我修复了该问题:

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

答案 3 :(得分:1)

当/上没有空格时我遇到了同样的问题。

问题:

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

  

使用的文件系统大小可用

上使用%      

的/ dev /映射器/ 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

开始色调:[确定]

[root @ master log]#

答案 4 :(得分:0)

肯定是磁盘空间问题,

终端上的

,输入df -h 你应该看到如下的输出(注意其中一个文件系统的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

在这种情况下,您需要通过删除路径根/上的文件,工件文件夹e.t.c来创建空间

答案 5 :(得分:0)

如果 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

答案 6 :(得分:0)

我在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', '.')) 

之后,脚本运行良好。

答案 7 :(得分:0)

我今天早些时候遇到了这个问题。我在午餐之前开始在jupyter中嵌入查询,然后返回jupyter抛出某种类型的错误(不记得是什么错误)。当我尝试在终端中重新启动jupyter时,出现了OP问题(无可用的临时目录)中描述的错误。上面的答案无效,因此我尝试重新启动整个VM,这时出现了描述为here的错误。按照该线程的最高答案中的说明进行操作后,问题得到解决。

答案 8 :(得分:0)

当我的Ubuntu上的根驱动器(/dev/sda1)损坏时,我得到了这个。

重新启动,出现错误/dev/sda1 contains a file system with errors

此处遵循以下说明:https://askubuntu.com/questions/885062/root-file-system-requires-manual-fsck,即fsck -y <dev/xxx reported to have error> 两次 。然后exit重新启动。