2016-01-20 20 views
5

Tôi đã học máy trong một thời gian dài bằng cách sử dụng MATLAB và gần đây đã chuyển sang python và để cài đặt các gói nhất định sử dụng pip quản lý gói và cài đặt thành công nhiều gói. Một vài ngày trước, tôi bắt đầu sử dụng conda và tất cả các gói đã cài đặt trước đó của tôi đang bị ghi đè.Sử dụng pip hoặc conda để quản lý các gói?

Tôi thực sự muốn biết sự khác biệt giữa pip và conda và điều gì sẽ xảy ra nếu tôi sử dụng pip để cài đặt gói thay vì conda?

Trả lời

2

Hy vọng rằng ai đó có kiến ​​thức hơn có thể mở rộng, nhưng có vẻ như Conda là một công cụ triển khai không tương thích PIP cho cả các công cụ/gói Python và non-python. Conda xử lý cài đặt ảo của Python và các gói cũng như các phụ thuộc không phải python.

PIP mặt khác là tiện ích triển khai Python cụ thể; nó không nhận thức được Conda, và Conda không nhận thức được PIP.

Biết được điều trên, có nghĩa là Conda sẽ không biết các gói PIP được triển khai trước đó của bạn vì hai gói này không tương thích.

May mắn thay, vì hai hệ thống được tách ra, bạn sẽ có thể phục hồi môi trường PIP của mình nếu bạn quyết định rằng Conda không đáng để chuyển sang. Nếu không, bạn có thể thử cài đặt matlib trên Conda để bắt chước những gì bạn đã thiết lập trên PIP:

conda cài đặt -c https://conda.anaconda.org/ioos matlab_kernel

đọc thêm:

What is the difference between pip and conda?

https://conda.anaconda.org/menpo/channel/matlab

2

pip và conda có điểm chung và sự khác biệt. Thật khó để giải thích tốt hơn những gì Jake VanderPlas đã làm ở đây: https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/

Để tiện ích của bạn, tốt nhất là nên lau sạch các gói đã cài đặt trước đó của bạn và chỉ dựa vào điều kiện. Nếu điều này là không thể do không có sẵn của các gói trong conda, bạn có thể cài đặt pip trong conda và sau đó sử dụng conda install pip. (từ liên kết ở trên).

2

Tôi thực sự muốn biết sự khác biệt giữa pip và conda

Xem What is the difference between pip and conda?

và những gì sẽ xảy ra nếu tôi sử dụng pip để cài đặt các gói thay vì conda?

Pip nói chung (ngoại trừ sử dụng virtualenv) cài đặt gói cho toàn bộ hệ thống (dưới dạng root/có thể là Quản trị viên) hoặc cho người dùng. Conda cài đặt các gói bên trong thư mục/thế giới nhỏ bé của riêng mình, nơi chúng cần được kích hoạt, ghi đè các gói của pip, như bạn đã lưu ý.

Như một giải pháp, bạn có thể cài đặt gói thông qua hệ thống của bạn trước tiên, pip giây và conda thứ ba.

Vì vậy, hãy sử dụng gói hệ thống nếu đó là tất cả những gì cần thiết. Nếu đó là quá cũ f.ex., bạn có thể sử dụng pip install.

Nếu bạn cần một gói cụ thể, có lẽ chỉ dành cho một dự án, hoặc nếu bạn cần chia sẻ dự án với người khác, conda dường như thích hợp hơn. Xem thêm What is the advantage of Pip over Anaconda?.

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