Tôi vẫn đang đến với các điều khoản với hệ sinh thái Python và PyCharm, vì vậy hãy làm theo sau với một hạt muối, nhưng sau reading up a bit, tôi nghĩ tôi sẽ viết một lời giải thích chi tiết.
Trong khi cài đặt, Anaconda thay đổi trình thông dịch Python mặc định thành ~/anaconda/bin/python. Trình thông dịch này được định cấu hình với sys.path
mặc định là các thư viện trong ~/anaconda/lib. Quản lý gói như pip của python sử dụng trình thông dịch đang chạy chúng để xác định đường dẫn để cài đặt gói, sau khi cài đặt Anaconda, tất cả các gói được cài đặt qua pip hoặc các phương thức khác sẽ được đặt ở đâu đó bên trong ~/anaconda/lib. tức là ngay cả khi không sử dụng một cái gì đó như virtualenv, mọi trình thông dịch Python đều có hệ sinh thái riêng của nó và chạy pip với các trình thông dịch khác nhau sẽ cài đặt các gói vào các thư mục khác nhau.
PyCharm xử lý tất cả điều này trong màn hình Project Settings-->Project Interpreter-->Python Interpreters
. Để làm cho PyCharm nhận thức được sự phân bố Anaconda, bạn cần thêm trình thông dịch trăn Anaconda vào danh sách Project Interpreter-->Python Interpreters
và đặt nó làm mặc định cho dự án. PyCharm sau đó sẽ xác định tất cả các gói được cài đặt trong hệ sinh thái thông dịch của Anaconda (~/anaconda/lib) và liệt kê chúng dưới packages
trong ngăn bên dưới. Nó cũng sẽ nhắc bạn cài đặt setup_tools và pip cho trình thông dịch đó, và một khi bạn làm điều đó bạn sẽ có thể sử dụng nút install
trong khung bên dưới để thêm nhiều gói vào hệ sinh thái Anaconda.
Khi bạn đã thêm trình thông dịch Anaconda, bạn cũng có thể sử dụng nút virtualenv từ thanh công cụ ở ngăn trên để tạo virtualenv kế thừa từ môi trường thông dịch của Anaconda. Bằng cách đó bạn có thể cài đặt các gói mới theo cách không ảnh hưởng đến việc phân phối Anaconda toàn cầu.
Bạn đã chạy cài đặt đúng chưa? Bạn có nói 'có' khi nó hỏi bạn liệu nó có thể sửa đổi '.bashrc' không? – Rohit
@Rohit Trong OSX nó là .bash_profile, nhưng có, trình cài đặt đã thay đổi nó (thêm anaconda/bin vào biến PATH). – hillel
Có. Lấy làm tiếc. Điều đó chỉ hữu ích cho trình thông dịch được tích hợp sẵn. – Rohit