Tôi muốn tạo một virtualenv
bằng cách sử dụng một điểm khác làm điểm bắt đầu, điều này có khả thi không?Virtualenv có thể kế thừa từ chương trình khác không?
tôi phải trường hợp sử dụng trong tâm trí:
Hãy nói rằng tôi có một hai
virtualenv
một phục vụ sản xuất và một cho phát triển. Môi trường phát triển đòi hỏi các gói giống như môi trường sản xuất, nhưng nó đòi hỏi những người khác mà tôi không muốn trong môi trường sản xuất. Tôi không muốn cài đặt các gói thông thường hai lần.Tôi muốn thử nghiệm với phiên bản phát triển của gói, ví dụ:
matplotlib
. Phiên bản phát triển của gói có cùng yêu cầu với phiên bản ổn định. Vì vậy, tôi tạo mộtvirtualenv
được gọi làmatplotib_stable
và cài đặt các yêu cầu và phiên bản ổn định. Sau đó, tôi tạo một sốvirtualenv
thứ hai được gọi làmatplotlib_dev
và sử dụngmatplotlib_stable
làm điểm khởi đầu (cho các yêu cầumatplotlib
) nhưng sau đó tôi cài đặt phiên bản phát triển.
How do I install from a local cache with pip? dường như giải quyết vấn đề tải gói, nhưng tôi không nghĩ rằng nó giao dịch với sửa đổi sys.path
.
Khi tôi cài đặt gói tương tự với các phiên bản khác nhau trên cả hai virtualenvs, tôi phát hiện ra env bên ngoài (ENV1) được dùng ưu tiên hơn env nội bộ (ENV2). Có vẻ như add2virtualenv đặt đường dẫn của nó trước đó trên danh sách nhập sys.path. Một giải pháp dễ dàng là làm theo lệnh trên với lệnh này: 'add2virtualenv $ WORKON_HOME/ENV2/lib/python2.6/site-packages' và sau đó nó hoạt động như một sự quyến rũ. – Yonatan
@Yann Cảm ơn Yann! Tôi cài đặt pylint trong ENV1, sau đó 'add2virtualenv $ WORKON_HOME/ENV1/lib/python3.4/site-packages', nhưng pylint không hoạt động! – HelloNewWorld
@HelloNewWorld Tôi đã không sử dụng 'virtualenv' và' vertualenvwrapper' trong một thời gian, tại sao không đăng câu hỏi mới về vấn đề này? – Yann