找不到可用的临时目录

我想找一个临时目录, 但是当我试图使用

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。

111510 次浏览

这种错误发生在两个案例中

  1. 许可(应该是 drwxrwxrwt 并且由 root 所有)
  2. 空间

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

df -h

将列出 unix 上的磁盘使用情况,并获得如下输出

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

如果 root (挂载在/上)使用率为100% 。

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

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

当没有空位的时候,我也遇到了同样的问题。

问题:

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]

# df-h

使用文件系统大小

/dev/mapper/vg _ master-lv _ root

             35G   34G     0 100%     /

交通意外伤亡赔偿基金
7.8 G 72K 7.8 G 1%/dev/shm

/dev/sda1
477M 34M 418M 8%/启动

当我清理出一些空间,然后它为我工作的罚款。

[ root@master log ] # service hue start

起始色调: [ OK ]

#

肯定是磁盘空间问题,

在终端上,键入 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 来腾出空间

我在 Docker 中运行 python 脚本时遇到了同样的问题:

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

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

我在 Windows7x64机器上遇到了同样的问题,磁盘空间和权限都没问题。

当我执行死刑的时候

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

从那以后,从剧本来看,它运行得很好。

我今天早些时候碰到了这个问题。在去吃午饭之前,我启动了一个嵌入在 Jupyter 中的查询,然后返回到 Jupyter,抛出了一些类型的错误(不记得具体是什么)。当我尝试在终端重新启动 jupyter 时,我得到了 OP 问题中描述的错误(没有可用的临时目录)。上面的答案不起作用,所以我尝试重新启动整个 VM,这时我得到了描述为 给你的错误。按照该线程顶部答案中的说明操作后,问题得到了解决。

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

重启,得到错误 /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重新启动。

文件系统可能遇到错误并切换到只读模式。这通常可以通过重新启动来修复。

根据我使用 Ubuntu 的经验,在重新启动时,通常会出现一个屏幕,上面写着“/dev/sda6包含一个带有错误的文件系统,强制检查”提示上写着 (initramfs)。您需要运行 fsck /dev/sda6(或者将该路径交换到安装了 /的位置)。