【问题标题】:OError: [Errno 26] Text file busy: '/...myvirtualenv/bin/python'IOError:[Errno 26] 文本文件忙:'/...virtualenv/bin/python'
【发布时间】:2016-11-03 14:00:45
【问题描述】:

我尝试重新创建 virtualenv:

foo_bar_d@aptguettler:~$ virtualenv --system-site-packages . 

我得到了这个例外:

foo_bar_d@aptguettler:~$ virtualenv --system-site-packages .
New python executable in /home/foo_bar_d/bin/python
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 711, in main
    symlink=options.symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 924, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1230, in install_python
    shutil.copyfile(executable, py_executable)
  File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 26] Text file busy: '/home/foo_bar_d/bin/python'

有人知道为什么会发生这个异常吗?

【问题讨论】:

  • 重启你的电脑,可能有鬼应用。或者这个文件所有者不是 system_default_user。
  • @dsgdfg 重启我的电脑后还是一样。文件所有权没问题,我检查了两次。
  • 包更新程序使用 python 并且 python 配置文件被锁定。停止每个 python 进程并使用bash 替换/删除/更改虚拟环境文件。或者将您的更改用作Package
  • @dsgdfg 您能否解释一下“或将您的更改用作包”的含义。我不明白你的提示。
  • OS 管理您的所有环境。您想要更改/添加您的默认 python-env,但不能使用 python 进行更改。创建一个BASH 脚​​本,进行一些更改并保存。包是操作系统包而不是 python 包。如果源和目标相同,ONUSE、ONBUSY、ONLOCK 不能改变!

标签: python virtualenv ioerror


【解决方案1】:

我也遇到了同样的问题 :)

virtualenv 通过修改 virtualenv 目录区域中的 python 可执行文件的副本来工作(afaik)。

您必须已经有一个使用 virtualenv 的进程,以便 python 可执行文件的副本处于“使用中”(从技术上讲,它在执行时被 mmap()'ed 到内存中)。

除非您需要更改 virtualenv 的设置,否则您不需要每次都重新运行 virtualenv 命令 - 一旦设置好,您只需在需要时激活它。

至于为什么会发生 - 您可能在启动时运行了一项服务:

ps -ef | grep python

【讨论】:

  • 是的,我知道我不需要重新运行 virtualenv 命令。我将笔记本电脑从 ubuntu-14 更新到 ubuntu-16。在此之后需要重新运行。
  • 现实生活中的例子可能是在另一个 ssh 会话中打开的 django shell 导致使用 fabric 引导时出现这样的错误...
【解决方案2】:

使用pkill python 终止系统上运行的 Python 进程

我会工作

【讨论】:

    猜你喜欢
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 2015-02-06
    • 2011-09-14
    • 1970-01-01
    • 2018-04-27
    • 2019-04-15
    相关资源
    最近更新 更多