2012-07-20 33 views
9

Để kích hoạt, có một tập lệnh kích hoạt virtualenv từ một interpeter python đã chạy bằng cách sử dụng execfile('C:/path/to/virtualev/Scripts/activate_this.py', dict(__file__='C:/path/to/virtualev/Scripts/activate_this.py')). Tuy nhiên kể từ khi tôi vẫn có thể nhập khẩu các gói không có trong virtualenv từ kịch bản python hiện tại tôi nhầm lẫn về cách nó hoạt động.
Để hủy kích hoạt, không có kịch bản python nào cả.
Tôi nên làm gì?Làm thế nào để kích hoạt/hủy kích hoạt virtualenv khỏi mã python?

+0

Tôi không hiểu ý bạn là gì bằng cách hủy kích hoạt. nếu bạn không muốn virtualenv .. chỉ cần xóa toàn bộ thư mục đó. đó là tất cả – Surya

+0

khi chúng tôi viết chương trình trong trình soạn thảo (nói nhật thực) .. có đường dẫn python theo mặc định không phải là virtualenv .. do đó, bạn có thể sử dụng các gói không có trong virtualenv. đó là nó – Surya

+1

@Surya Khi hủy kích hoạt virtualenv, điều đó có nghĩa là bạn đang quay trở lại nội suy chính của python. –

Trả lời

6

Từ part of the VirtualEnv homepage.

Bạn phải sử dụng trình thông dịch Python tùy chỉnh để cài đặt thư viện. Nhưng để sử dụng thư viện, bạn chỉ cần đảm bảo đường dẫn là chính xác. Một tập lệnh có sẵn để sửa đường dẫn. Bạn có thể thiết lập môi trường như:

activate_this = '/path/to/env/bin/activate_this.py' 
execfile(activate_this, dict(__file__=activate_this)) 
+0

Python 3 tương đương với điều này là gì? – Pieter

+2

@Pieter http://stackoverflow.com/questions/436198/what-is-an-alternative-to-execfile-in-python-3-0 – satoru

-3

Điều này giống như ý tưởng tồi. Bạn đang cố gắng sửa đổi môi trường tập lệnh của mình trong tập lệnh này. Xin giải thích tại sao?

Bạn không thể làm điều đó theo thứ bậc? Sử dụng một tập lệnh để chạy các tập lệnh khác nhau trong các virtualenv khác nhau.

+1

Tôi đang phát triển một thử nghiệm Á hậu như độc tố (chỉ rất khác nhau trong cách tiếp cận của nó. Tôi không phát minh lại bánh xe) chạy bộ thử nghiệm trong các môi trường ảo khác nhau bằng cách sử dụng phụ thuộc khác nhau và python interpeters. Do đó, tôi phải có một cách lập trình để kích hoạt và hủy kích hoạt virtualenv. –

-4

tại cửa sổ dòng lệnh, gõ từ 'vô hiệu hóa'

+1

Từ mã Python. Không phải từ dòng lệnh. –

0

Nếu bạn muốn chạy một chương trình bên ngoài của virtualenv, chỉ cần chạy của bạn thực thi hệ thống python (ví dụ: /usr/bin/python) thay vì một trong virtualenv.

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