web-dev-qa-db-ja.com

OError:[Errno 26]テキストファイルビジー: '/...myvirtualenv/bin/python'

私は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'

この例外が発生する理由を誰かが知っていますか?

17
guettli

私はまったく同じ問題を抱えていました:)

virtualenvは、virtualenvディレクトリ領域にあるpython実行可能ファイルのコピーを変更することで機能します(afaik)。

python実行可能ファイルのコピーが「使用中」です(技術的には、実行中にメモリにmmap()されます)ので、virtualenvをすでに使用しているプロセスが必要です。

Virtualenvの設定を変更する必要がない限り、virtualenvコマンドを毎回再実行する必要はありません。一度設定したら、必要なときにアクティブにするだけです。

なぜそれが起こるのか-起動時にサービスを実行している可能性があります:

ps -ef | grep python
24
lbt