73

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

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

该目录的权限为 777,由 root 拥有。

4

9 回答 9

111

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

  1. 权限(应为 drwxrwxrwt 并由 root 拥有)
  2. 空间

要检查空间(磁盘使用情况)只需在终端上运行命令

df -h

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

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

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

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

于 2013-06-08T05:30:19.747 回答
13

如果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
于 2019-02-25T19:08:52.543 回答
10

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

于 2013-12-19T14:19:38.180 回答
8

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

docker rmi $(docker images --quiet --filter "dangling=true")
于 2018-09-18T21:37:50.600 回答
5

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

问题:

_get_default_tempdir 中的文件“/usr/lib64/python2.6/tempfile.py”,第 201 行(“在 %s 中找不到可用的临时目录”% dirlist))
IOError: [Errno 2] 在 ['/tmp', '/var/tmp', '/usr/tmp', '/'] 中找不到可用的临时目录 [FAILED]

[root@master hue]# df -h

已使用的文件系统大小可用使用百分比已安装在

/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 日志]#

于 2016-02-29T11:09:52.193 回答
3

肯定是磁盘空间问题,

在终端上,键入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

在这种情况下,您需要通过删除路径根目录上的文件、工件文件夹等来腾出空间/

于 2017-12-29T11:01:03.107 回答
1

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

之后从脚本它运行良好。

于 2019-03-29T16:02:47.597 回答
0

我今天早些时候遇到了这个问题。我在去吃午饭之前启动了一个嵌入在 jupyter 中的查询,然后我返回 jupyter 并抛出某种类型的错误(不记得它到底是什么)。当我尝试在终端中重新启动 jupyter 时,我收到了 OP 问题中描述的错误(没有可用的临时目录)。上面的答案不起作用,所以我尝试重新启动我的整个 VM,此时我得到了此处描述的错误。按照该线程的最佳答案中的说明进行操作后,问题已解决。

于 2019-10-02T18:15:05.743 回答
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重新启动。

于 2020-08-05T15:02:34.163 回答