2014-09-24 19 views
11

Tôi có một virtualenv running python 2.7.7. Nó có một bộ thư viện khá rộng lớn hỗ trợ một tập các mô-đun độc quyền khá phức tạp. Nói cách khác, virtualenv cần duy trì tính toàn vẹn của nó. Đó là tất nhiên là toàn bộ điểm của virtualenv.Anaconda và VirtualEnv

Gần đây, tôi gặp phải một số vấn đề được giải quyết rất dễ dàng bằng cách sử dụng Anaconda. Tôi đã thử nó trong một môi trường thử nghiệm và nó hoạt động khá tốt. Bây giờ tôi được giao nhiệm vụ kết hợp cấu hình mới này vào sản xuất. Nó không phải là rõ ràng với tôi làm thế nào để kết hợp Anaconda vào một virtualenv, hoặc cho dù điều này thậm chí là một ý tưởng tốt. Trong thực tế, nó gần như có vẻ như tôi như tôi nên sử dụng anaconda cài đặt như là nguồn mới và desconstruct virtualenv cũ ... sáp nhập các thư viện nó được tổ chức vào conda.

Có ai có đề xuất về cách tiếp cận tốt nhất không? Nếu hợp nhất các môi trường được gọi cho, bất cứ ai có thể chỉ ra một lời giải thích về cách đi về nó?

Trả lời

8

Không thực sự hợp lý khi hợp nhất Anaconda và virtualenv, vì Anaconda là một bản cài đặt hoàn toàn độc lập của Python. Bạn có thể làm điều đó, thường bằng cách đặt PYTHONPATH của bạn, nhưng mọi thứ có cơ hội tốt để phá vỡ khi bạn làm điều này, và tôi khuyên bạn nên chống lại nó.

Nếu có thư viện trong virtualenv của bạn, bạn có thể sử dụng chúng với Anaconda bằng cách tạo các gói conda cho chúng. Họ có thể đã có các gói conda (tìm kiếm với conda search và tìm kiếm https://binstar.org/). Nếu không, bạn có thể xây dựng một gói bằng cách sử dụng một công thức conda. Xem http://conda.pydata.org/docs/build.htmlhttps://github.com/conda/conda-recipes để biết một số công thức nấu ăn mẫu.

+2

Tôi đã đề xuất rằng anaconda và virtualenv hợp nhất. Tôi đã đề xuất sáp nhập các thư viện độc quyền một lần được tổ chức trong virtualenv vào anaconda, sau đó ném virtualenv đi. Tôi không hiểu điểm tạo ra các gói conda là gì. Các thư viện đã là các mô-đun python chuẩn. Có thể không chỉ đơn giản là thả các mô-đun python? – melchoir55

+2

Lợi thế của việc tạo các gói conda là bạn có thể theo dõi chúng bằng conda. Nó không phải là một yêu cầu, nó chỉ làm cho mọi việc dễ dàng hơn trong thời gian dài. – asmeurer