OError:[Errno 26]文本文件繁忙:' / ... myvirtualenv / bin / python'

时间:2016-11-03 14:00:45

标签: python virtualenv ioerror

我尝试重新创建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'

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

2 个答案:

答案 0 :(得分:20)

我遇到了完全相同的问题:)

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

你必须已经有一个使用virtualenv的进程,所以python可执行文件的副本是“正在使用”(技术上它是mmap()在执行时被编入内存)。

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

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

ps -ef | grep python

答案 1 :(得分:0)

使用pkill python

杀死在系统上运行的Python进程

我会工作