2016-03-07 17 views
6

Tôi có một dự án được gọi là ABC, tôi có một ena conda chỉ trong màn hình ~/anaconda/envs/ABC, tôi tin rằng đó là một venv và tôi muốn sử dụng một số gói cụ thể từ các gói trang web toàn cầu.cách sử dụng lại các gói trang web toàn cầu trong conda env

Để cài đặt Python bình thường, bạn có thể xóa bỏ tệp no-global-site-package.txt khỏi thư mục venv hoặc bằng cách đặt venv để sử dụng gói toàn cầu, nhưng tôi không tìm thấy bất kỳ tiếp cận để làm điều này trong Anaconda. Tài liệu trực tuyến cũng không có câu trả lời.

Làm cách nào để thực hiện việc này cho Anaconda?

Trả lời

0

Bạn có thể sử dụng biến môi trường PYTHONPATH. Ví dụ:

export PYTHONPATH="/Users/me/anaconda/lib/python2.7/site-packages:$PYTHONPATH" 

sẽ cấp cho mọi môi trường quyền truy cập vào tất cả các thư viện trong phân phối anaconda. Loại thất bại mục đích của môi trường mặc dù. Và nếu bạn muốn truy cập vào thư viện bạn đã cài đặt với home-brew, bạn sẽ thêm

export PYTHONPATH=/usr/local/Cellar/another_package/lib/python2.7/site-packages:$PYTHONPATH 
+2

tôi nghĩ bạn không trả lời câu hỏi OP chút nào. – Dominik

+0

Vâng Dominick, bạn có thể giải thích cho mình không? – aquagremlin

1

bạn không thể làm điều này một cách rõ ràng trong conda, trong đó nguyên tắc là envs hoàn toàn riêng biệt.

nhưng hành vi mặc định hiện tại của conda là cho phép tất cả toàn cầu sử dụng trang web gói để được nhìn thấy từ bên trong môi trường, như đã đề cập in this question. vì vậy, hành vi mặc định sẽ cho phép bạn làm như bạn muốn, nhưng không có cách nào để chỉ cho phép các gói "toàn cầu" cụ thể như được yêu cầu.

hành vi này đã gây ra sự cố one hoặc two. để tránh nó, export PYTHONNOUSERSITE=1 trước source activate <your env>. lưu ý rằng các nhà phát triển đang có kế hoạch thay đổi hành vi mặc định thành đặt PYTHONNOUSERSITE=1 trong 4.4.0 (theo vấn đề thứ hai được liên kết).

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