Anaconda so với EPD Enthought so với cài đặt thủ công của Python [đã đóng]


112

Ưu điểm / nhược điểm tương đối của các gói Python khác nhau (EPD / Anaconda) so với cài đặt thủ công là gì?

Tôi đã cài đặt EPD học thuật và tôi không gặp vấn đề gì với nó. Nó cung cấp nhiều gói hơn mà tôi nghĩ rằng tôi sẽ cần và rất dễ dàng cập nhật bằng cách sử dụng enpkg enstaller. Tuy nhiên, giấy phép học thuật EPD yêu cầu gia hạn hàng năm và phiên bản miễn phí không cập nhật dễ dàng.

Hiện tại, tôi thực sự chỉ sử dụng một số gói như Pandas , NumPy , SciPy , matplotlib , IPython , Statsmodels và các gói phụ thuộc tương ứng của chúng.

Đối với việc sử dụng hạn chế như vậy, tôi tốt hơn nên cài đặt thủ công và pip install --upgrade 'package'hoặc các gói có cung cấp bất cứ điều gì hơn và trên này không?


2
Cũng nhìn vào Python (x, y). Nó có đối tượng mục tiêu tương tự như Enthought Python, nhưng không tốn kém gì. code.google.com/p/pythonxy
Eike

1
Tôi nghĩ rằng nó phụ thuộc vào hệ điều hành bạn đang sử dụng. Những gì là của bạn?
Andrea Zonca

5
Một lợi thế của việc sử dụng Anaconda ngay cả trên Ubuntu là bạn có thể dễ dàng cài đặt được quản lý với tư cách là người dùng không phải root. Hoặc, bạn có thể có nhiều môi trường với nhiều phiên bản của bất kỳ gói nào trên cùng một hệ thống bằng cách sử dụng trình quản lý gói conda, trung tâm của phân phối Anaconda.
Travis Oliphant

5
Ngoài FYI, Anaconda hoàn toàn miễn phí cho tất cả mọi người, học thuật và thương mại. Có sẵn giấy phép miễn phí cho các học giả về các tiện ích bổ sung của Continuum, đây là một thứ riêng biệt với Anaconda.
Travis Oliphant

1
Đây là một số "sự thật": Tôi đã thử nghiệm một số phép tính ma trận đơn giản (sản phẩm chấm ma trận, nghịch đảo) bằng cách sử dụng numpy trong anaconda vs vani python 2.7. Trình thông dịch vani chỉ sử dụng 1 luồng trên máy tính xách tay của tôi, có 4 lõi và 8 luồng, trong khi anaconda sử dụng tất cả 8 luồng. Vì vậy, tốc độ nhanh hơn khoảng 7 lần trong anaconda.
Jason

Câu trả lời:


48

Cập nhật 2015 : Ngày nay tôi luôn giới thiệu Anaconda. Nó bao gồm rất nhiều gói Python cho tính toán khoa học, khoa học dữ liệu, phát triển web, v.v. Nó cũng cung cấp một công cụ môi trường ưu việt conda, cho phép dễ dàng chuyển đổi giữa các môi trường, ngay cả giữa Python 2 và 3. Nó cũng được cập nhật rất nhanh chóng ngay sau đó khi một phiên bản mới của một gói được phát hành và bạn chỉ cần conda update packagenamecập nhật nó.

Câu trả lời gốc bên dưới :

Trên Windows, điều phức tạp là biên dịch các gói toán học, vì vậy tôi nghĩ rằng cài đặt thủ công là một lựa chọn khả thi chỉ khi bạn chỉ quan tâm đến Pythonmà không có các gói khác.

Do đó, tốt hơn nên chọn EPD (bây giờ là Canopy) hoặc Anaconda.

Anaconda có khoảng 270 gói, bao gồm gói quan trọng nhất cho hầu hết các ứng dụng khoa học và phân tích dữ liệu, đó là, NumPy , SciPy , Pandas , IPython , matplotlib , Scikit-learning . Vì vậy, nếu điều này là đủ với bạn, tôi sẽ chọn Anaconda.

Thay vào đó, nếu bạn quan tâm đến các gói khác và thậm chí nhiều hơn nếu bạn sử dụng bất kỳ gói Enthought nào ( ví dụ như Chaco rất hữu ích cho việc trực quan hóa dữ liệu thời gian thực), thì EPD / Canopy có lẽ là lựa chọn tốt hơn. Phiên bản Học thuật có số lượng gói lớn hơn trong bản cài đặt cơ sở và nhiều gói khác trong kho lưu trữ. Anaconda cũng bao gồm Chaco.


1
Tôi cũng đang xem câu hỏi này. Bạn nói rằng Canopy bao gồm nhiều gói hơn, điều đó có nghĩa là không thể cài đặt các gói khác này trong anaconda? Có vẻ ngớ ngẩn khi giới hạn bản thân không biết liệu 2 năm nữa tôi có cần một gói nào đó hay không.
Dominik

3
hy vọng trong 2 năm nữa, bạn sẽ cập nhật các bản cài đặt hệ điều hành hoặc python của mình ... dù sao thì cũng có, bạn có thể cài đặt mọi gói python bổ sung trong bất kỳ bản phân phối python nào bạn chọn. Đối với các gói chỉ dành cho python, điều này rất đơn giản. Đối với các gói nhúng phần mở rộng C hoặc C ++ (thường là các gói khoa học), điều này khó hơn, đặc biệt là trong cửa sổ, vì vậy tốt hơn hãy suy nghĩ trước.
Andrea Zonca

13
FWIW, Anaconda cũng bao gồm Chaco và bao gồm nhiều hơn chỉ 20 gói: docs.continuum.io/anaconda/pkgs.html (Thậm chí nhiều hơn có sẵn trong repo và không đi kèm với trình cài đặt.)
Peter Wang

3
Ngoài ra FWIW, Anaconda hiện có thông tin conda-meta / pkg * tuyệt vời trên tất cả các gói 100 lẻ: yêu cầu, phiên bản ... ( conda-request tóm tắt tất cả các yêu cầu.)
denis

3
Tôi đã cố gắng thiết lập python để khai thác dữ liệu trên máy Mac của mình. Tôi vẫn chưa bẻ khóa được điều này, nhưng phần đáng thất vọng nhất cho đến nay là cài đặt Enthought Canopy Express và sau đó biết được rằng họ tính phí 199 đô la để truy cập vào scikit-learning và nltk.
rrs

11

Tôi đã thử các bản phân phối Windows khác nhau trong năm ngoái, cố gắng tìm một bản phân phối cho môi trường làm việc của mình (đằng sau một proxy, nhưng không có quyền truy cập vào cấu hình proxy).

Đây là phản hồi của tôi từ trải nghiệm:

EPD / Canopy: Chúng tôi đã có giấy phép EPD, nhưng giấy phép đã cũ và chúng tôi không thể cập nhật do tình trạng proxy kỳ lạ. Để thêm một số gói (chẳng hạn như phiên bản gần đây của xlrd / xlwt ), tôi đã biên dịch từ nguồn. Để cập nhật SciPy NumPy , tôi đã sử dụng trình cài đặt được biên dịch trước từ http://www.lfd.uci.edu/~gohlke/pythonlibs/ , nhưng đôi khi nó sẽ làm hỏng khả năng tương thích. Tôi thích có một Py2exeCython được cấu hình đầy đủ , và nó chỉ đơn giản là hoạt động tốt.

Sau một thời gian, tôi đã thử cài đặt phiên bản miễn phí của Canopy, nhưng nó thiếu Cython và py2exe và một số gói nâng cao cụ thể mà tôi cần, vì vậy tôi chưa bao giờ thực sự sử dụng nó. Một số đồng nghiệp của tôi đã mua bản quyền Canopy đầy đủ, nhưng chúng tôi vẫn không chắc họ sẽ cập nhật như thế nào ...

Python (x, y): Không muốn vật lộn với giấy phép, tôi đã cài đặt Python (x, y) ở nhà. Nhược điểm duy nhất mà tôi nhận thấy ngay bây giờ là cài đặt tiêu chuẩn yêu cầu bạn chọn gói nào bạn muốn. Đó là cả một điểm tốt và một điểm xấu, vì tôi không thể chắc chắn rằng các khách hàng của tôi sẽ có cấu hình chính xác giống như khi tôi cài đặt. (Bộ công cụ Enthought có thể được cài đặt bằng Python (x, y).) Sau khi sử dụng Python (x, y) một thời gian, tôi chỉ nhận thấy rằng tôi đã cài đặt phiên bản 32 bit. Mặc dù không rõ trên trang web của họ, nhưng có vẻ như họ không có phiên bản 64 bit kể từ tháng 7 năm 2015. Tôi sẽ gỡ cài đặt nó và nhận bản phân phối 64 bit.

Anaconda: Khi tôi viết bài này lần đầu, Anaconda dường như vẫn chưa có đủ gói. Một vài năm sau, nó có vẻ tốt hơn nhiều, tôi sẽ thử nó!

Thủ công: Để tránh các vấn đề về tương thích phiên bản với phiên bản EPD cũ của chúng tôi, tôi đã kết thúc bằng cách cài đặt Python thủ công và thêm các gói bổ sung từ trang web LFD được liên kết ở trên. Nó hoạt động tốt, nhưng tôi vẫn đề xuất Canopy cho người dùng mới yêu cầu các gói nâng cao (như GDAL hoặc PyFITS ).

Tóm lược: Nếu bạn sử dụng Canopy, hãy nhận đầy đủ giấy phép (Học thuật hoặc mua). Nếu không, hãy sử dụng Python (x, y), nó sẽ giống nhau.

Trên Ubuntu: Không cần bản phân phối. Tất cả đều tương đối gần đây (có thể chấp nhận được +/- 6 tháng) và được biên soạn trước. Bạn chỉ cần thực thi sudo apt-get install python python-scipyvà nó ở đó! Hầu hết các gói nâng cao cũng có ở đó.


Này Rafael, gần đây bạn có nhìn Anaconda không? Nó đã đi một chặng đường dài.
Peter Wang,

Tải xuống pythonxy - nó không ở địa chỉ mong đợi mà hiện tại chỉ là một miền trỏ hướng.
pbhj

Sử dụng kho lưu trữ ubuntu python / scipy, v.v. (được cài đặt bằng apt) là tốt, nhưng nó luôn có một vài phiên bản phía sau, điều này có thể gây khó khăn vì nó bỏ lỡ các bản sửa lỗi và các tính năng mới hữu ích. Tôi thường thích cài đặt bằng pip và nhận các phiên bản ổn định mới nhất.
drevicko

4

Các câu trả lời khác bao gồm cơ sở khá tốt, vì vậy tôi chỉ muốn nhận xét về một khía cạnh cụ thể mà chưa ai đề cập đến. Nó có thể khá thích hợp, nhưng nó có thể tạo ra hoặc phá vỡ Anaconda hoặc Canopy đối với một số người trong hệ thống Linux:

Các bản dựng Anaconda Python sử dụng chế độ Unicode UCS4, trong khi Enthought Canopy sử dụng UCS2.

Điều này có nghĩa là trong điều kiện thực tế là nếu bạn dựa vào bất kỳ tiện ích mở rộng nào mà bạn không thể tự biên dịch vì bất kỳ lý do gì (ví dụ: các thư viện độc quyền được biên dịch trước), nếu chúng không được xây dựng cho phiên bản Python với cùng một chế độ, bạn có thể sớm hơn hoặc sau đó gặp phải lỗi trông giống như undefined symbol: PyUnicodeUCS4_AsUTF8String .

Theo PEP 0513 , UCS4 hiện đang phổ biến hơn và được khuyến khích sử dụng. Ngoài ra, toàn bộ vấn đề tương thích của UCS dường như chỉ ảnh hưởng đến các phiên bản 2.x và <3.3.


Đây thực sự là một điều hữu ích cần biết. Cảm ơn!
pysolver

-4

Tôi đã sử dụng Anaconda trong nhiều năm và khá thích nó. Thật không may, IPython Notebook (giờ là Jupyter ) không khả dụng nếu không có phiên bản dành cho doanh nghiệp.

Tôi muốn sử dụng sổ ghi chép Jupyter trong lớp học, vì vậy tôi đã chuyển sang Canopy. Có vẻ như nó đủ dễ dàng để cài đặt tất cả các gói chúng tôi cần. Phải thừa nhận rằng chúng tôi chưa thử nghiệm tất cả chúng.


1
Ít nhất thì Máy tính xách tay Jupyter của tôi vẫn hoạt động với phiên bản Anaconda Chuẩn (miễn phí). Bạn có thể giải thích nơi bạn lấy thông tin đó? Ít nhất thì trên trang chủ Anaconda chính thức, Jupyter vẫn được liệt kê.
MSeifert

2
Điều này thực tế là không đúng sự thật. Jupyter / IPython luôn có sẵn trong Anaconda miễn phí. FWIW, Continuum Analytics (nhà sản xuất Anaconda) sử dụng một số nhà phát triển cốt lõi của Jupyter.
Peter Wang

Vui lòng sửa câu trả lời sai của bạn. Trang web ipython thậm chí sẽ cho bạn biết làm thế nào để cài đặt sử dụng Anaconda: ipython.org/install.html
Bradley Kreider
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.