2013-05-28 42 views
5

sau khi máy tính sửa chữa thư mục dự án python của tôi (cửa sổ) đã thay đổi (nói từ d: thành f :). bây giờ tất cả các virtualenv của tôi bị hỏng. sau khi kích hoạt các env dự án bên trong virtualenv không thể tìm thấy sự phụ thuộc và các kịch bản tùy chỉnh (từ thư mục env \ scripts) sẽ không làm việcthay đổi thư mục virtualenv trên windows

cố gắng chạy:

virtualenv --relocateble ENV_NAME (with the env name ..) 

như trong stackoverflow question này và nó xuất ra rất nhiều dòng như:

Script agent\Scripts\deactivate.bat cannot be made relative 

và virtualenv của tôi vẫn bị hỏng.

khi tôi thay đổi theo cách thủ công activate.bat set VIRTUAL_ENV sang đường dẫn mới. một số tập lệnh hoạt động trở lại. nhưng các kịch bản di dời vẫn không chạy và hầu hết các kịch bản vẫn được chia

thậm chí chạy interpeter python không thành công với:

Traceback (most recent call last): 
    File "F:\Python27\learn\agent\agent\lib\site.py", line 677, in <module> 
    main() 
    File "F:\Python27\learn\agent\agent\lib\site.py", line 666, in main 
    aliasmbcs() 
    File "F:\Python27\learn\agent\agent\lib\site.py", line 506, in aliasmbcs 
    import locale, codecs 
    File "F:\Python27\learn\agent\agent\lib\locale.py", line 19, in <module> 
    import functools 
ImportError: No module named functools 

là có cách nào để sửa lỗi này? HELP

Cập nhật: Tôi cũng đã thay đổi thủ công dòng interpeter trăn shebang trong tất cả các tập lệnh trong ENV \ Scripts. bây giờ tất cả thất bại với sự thất bại python tương tự như trên

Thông tin khác: để @udi đường dẫn hệ thống python là:

['', 'C:\\dev\\Python27\\lib\\site-packages\\distribute-0.6.37-py2.7.egg', 'C:\\ 
dev\\Python27\\lib\\site-packages\\pip-1.3.1-py2.7.egg', 'C:\\dev\\Python27\\lib 
\\site-packages\\numpy-1.7.1-py2.7-win32.egg', 'C:\\dev\\Python27\\lib\\site-pac 
kages\\pandas-0.11.0-py2.7-win32.egg', 'C:\\dev\\Python27\\lib\\site-packages\\p 
ytz-2013b-py2.7.egg', 'C:\\dev\\Python27\\lib\\site-packages\\python_dateutil-2. 
1-py2.7.egg', 'C:\\dev\\Python27\\lib\\site-packages\\six-1.3.0-py2.7.egg', 'C:\ 
\dev\\Python27\\lib\\site-packages\\tornado-3.0.1-py2.7.egg', 'C:\\dev\\Python27 
\\lib\\site-packages\\pyzmq-13.1.0-py2.7-win32.egg', 'C:\\dev\\Python27\\lib\\si 
te-packages\\pygments-1.6-py2.7.egg', 'C:\\Windows\\system32\\python27.zip', 'C: 
\\dev\\Python27\\DLLs', 'C:\\dev\\Python27\\lib', 'C:\\dev\\Python27\\lib\\plat- 
win', 'C:\\dev\\Python27\\lib\\lib-tk', 'C:\\dev\\Python27', 'C:\\dev\\Python27\ 
\lib\\site-packages', 'C:\\dev\\Python27\\lib\\site-packages\\setuptools-0.6c11- 
py2.7.egg-info'] 

kể từ khi tôi không thể chạy python từ virtualenv, tôi không thể in đường dẫn python từ đó

+0

Bạn có thay đổi phiên bản hoặc nền tảng python của mình không? – Udi

+0

Bạn có thể thêm bản in của 'python'>' import sys'> 'sys.path' không? – Udi

+0

có, hệ thống mới có phiên bản mới hơn của python (tôi nghĩ, không chắc chắn) .adding hệ thống python sys.path vào câu hỏi – alonisser

Trả lời

1

Có vẻ như hệ thống và môi trường cục bộ của bạn tạo hỗn hợp các thư viện và mã nhị phân từ các phiên bản python khác nhau.

Có thể bạn sẽ cần xóa Lib, ScriptsInclude và bắt đầu lại với virtualenv .. Bạn có thể lưu thư mục site-packages, nhưng nếu bạn có các tệp requirements.txt, có thể bạn nên cài đặt lại các gói thay thế (xem thêm: How do I install from a local cache with pip?).

Dù sao, tôi tin rằng bạn có thể tạo tập lệnh thực hiện tất cả điều này trong một bước.

+0

hmm. Tôi biết tôi có thể cài đặt lại một virtualenv, và tôi có một requirements.txt từ một đóng băng pip. nhưng tôi không hài lòng với giải pháp này. nếu không có gì khác bật lên, tôi sẽ chỉ kiểm tra lại repo, và cài đặt lại nó – alonisser

+0

Bạn có thể thử sao chép các tập tin 'Lib' và exe trong' Scripts' từ virtualenv mới, nhưng nó giống nhau :-) – Udi

+0

Tôi nghi ngờ sao chép sẽ làm nó tồi tệ hơn, hiện tại tôi đang cố gắng đề nghị của bạn về một virtualenv tươi với một cài đặt lại các gói, giữ ngón tay của bạn cho tôi. – alonisser

20

Sửa chữa đường dẫn thư mục python trong ENV_FOLDER\Lib\orig-prefix.txt giúp tôi

+3

Đây là vấn đề của tôi khi di chuyển từ máy tính đến máy tính – JamesD

+1

Làm việc cho tôi. Tôi đã cài đặt lại Python (Anaconda) vào thư mục khác nhau. – curtisp

+0

Làm việc cho tôi. Cảm ơn! – neolei

0

Tôi đã cài đặt cả hai py2 và py3 trên cửa sổ của tôi 10. Và có lỗi này bằng cách tạo ra bằng cách sử dụng virtualenv virtualenv xxx trực tiếp. Sau khi dọn dẹp thư mục xxx và cài đặt lại với virtualenv -p TARGET_PY_EXE xxx mọi thứ hoạt động suôn sẻ. Hy vọng điều này sẽ giúp nhiều người dùng windows python. Nhân tiện, tôi chỉ cần tạo các biến env là PY2 và PY3 thay vì thêm đường dẫn tuyệt đối vào PATH.

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