pip在python3中安装或更新软件包时,EnvironmentError [Errno 39]“目录不为空”

时间:2019-04-22 04:50:45

标签: python pip

在此同时发布问答,因为还没有关于此类错误的SO帖子,并且网络搜索上的其他链接导致未解决的gihub问题。这是我在虚拟python环境中更新的软件包:

(py36) $ pip install tornado -U
Collecting tornado
  Downloading https://files.pythonhosted.org/packages/03/3f/5f89d99fca3c0100c8cede4f53f660b126d39e0d6a1e943e95cc3ed386fb/tornado-6.0.2.tar.gz (481kB)
    100% |████████████████████████████████| 491kB 476kB/s 
Building wheels for collected packages: tornado
  Building wheel for tornado (setup.py) ... done
  Stored in directory: /home/nikhil/.cache/pip/wheels/61/7e/7a/5e02e60dc329aef32ecf70e0425319ee7e2198c3a7cf98b4a2
Successfully built tornado
Installing collected packages: tornado
  Found existing installation: tornado 5.1.1
    Uninstalling tornado-5.1.1:
      Successfully uninstalled tornado-5.1.1
Could not install packages due to an EnvironmentError: [Errno 39] Directory not empty: '/mnt/STUFF/py36/lib/python3.6/site-packages/~ornado'

那么如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

检查错误消息中突出显示的实际文件夹:

/mnt/STUFF/py36/lib/python3.6/site-packages/~ornado

我发现那里还有另外.fuse-hidden...个文件,通常是我在运行时在文件夹中使用Geany(文本编辑器)时发现的,然后在保存文件后消失了然后刷新文件夹。不知何故,这里也创建了这样的文件,并且从未将其删除。请注意,这可能是我的操作系统的错误,而不是Geany的-IDK。无论如何,我自己删除了文件并运行了升级命令,这次没有错误。

答案 1 :(得分:0)

有一个类似的问题,其中使用wheel(python setup.py bdist_wheel)为我自己的python软件包创建构建的分发存档会导致相同的错误消息。一旦我关闭了要打开的程序包的所有打开文件,问题就解决了(即,我关闭了文本编辑器)。

由于它是相同的错误和相似的解决方案,但是发生的情况非常不同,所以我创建了自己的堆栈溢出问题here