2016-11-03 12 views
5

tôi cố gắng để tái tạo virtualenv:OError: [Errno 26] Văn bản tập tin bận rộn: '/...myvirtualenv/bin/python'

[email protected]:~$ virtualenv --system-site-packages . 

tôi nhận được ngoại lệ này:

[email protected]:~$ 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' 

Có ai biết tại sao ngoại lệ này xảy ra không?

+0

Khởi động lại máy tính của bạn, có lẽ có một ứng dụng ma. Hoặc chủ sở hữu tệp này không phải system_default_user. – dsgdfg

+0

@dsgdfg nó giống nhau sau khi khởi động lại máy tính của tôi. Quyền sở hữu tệp là ok, tôi đã kiểm tra nó hai lần. – guettli

+0

Trình cập nhật gói sử dụng tệp cấu hình python và python đang được khóa. Dừng mọi quá trình python và sử dụng 'bash' để thay thế/xóa/thay đổi tệp env ảo. Hoặc sử dụng các thay đổi của bạn dưới dạng 'Gói'. – dsgdfg

Trả lời

8

tôi đã cùng một vấn đề chính xác :)

virtualenv làm việc (afaik) bằng cách sửa đổi một bản sao của python thực thi trong lĩnh vực thư mục virtualenv.

Bạn phải có một quá trình bằng cách sử dụng virtualenv để bản sao của tệp thực thi python là 'đang sử dụng' (về mặt kỹ thuật nó đã được sửa vào bộ nhớ trong khi thực thi).

Trừ khi bạn cần thay đổi thiết lập của virtualenv bạn không cần phải chạy lại lệnh virtualenv mỗi lần - khi thiết lập xong, bạn chỉ cần kích hoạt khi cần.

Là tại sao nó xảy ra - Có thể là bạn có một dịch vụ chạy lúc khởi động:

ps -ef | grep python 
+0

Có, tôi biết rằng tôi không cần phải chạy lại lệnh virtualenv. Tôi đã cập nhật máy tính xách tay của mình từ ubuntu-14 lên ubuntu-16. Sau khi điều này làm cho chạy lại cần thiết. – guettli

+0

ví dụ thực tế đời sống có thể trong một phiên ssh mở django shell gây ra lỗi như vậy khi bootstraping với vải ... – andi

Các vấn đề liên quan