我尝试重新创建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'
有人知道为什么会发生这种异常吗?
我有同样的问题 :)
virtualenv通过修改virtualenv目录区域中python可执行文件的副本来工作(afaik)。
您必须已经有一个使用virtualenv的进程,以便python可执行文件的副本“在使用中”(从技术上讲,它是在执行时将mmap()放入内存)。
除非您需要更改virtualenv的设置,否则不需要每次都重新运行virtualenv命令-设置完成后,只需在需要时将其激活即可。
关于发生这种情况的原因-引导时可能正在运行服务:
ps -ef | grep python