Anaconda vs. EPD Enthought vs. pemasangan Python secara manual [ditutup]


112

Apa keuntungan / kerugian relatif dari berbagai bundel Python (EPD / Anaconda) vs. penginstalan manual?

Saya telah menginstal EPD akademik, dan saya tidak memiliki masalah dengan itu. Ini menyediakan lebih banyak paket yang menurut saya akan saya perlukan, dan sangat mudah untuk memperbarui menggunakan enpkg enstaller. Lisensi akademik EPD memerlukan pembaruan tahunan namun dan versi gratisnya tidak melakukan pembaruan dengan mudah.

Saat ini saya benar-benar hanya menggunakan beberapa paket seperti Pandas , NumPy , SciPy , matplotlib , IPython , Statsmodels dan dependensinya masing-masing.

Untuk penggunaan terbatas seperti itu, apakah saya lebih baik dengan penginstalan manual dan pip install --upgrade 'package'atau apakah bundel menawarkan sesuatu di atas ini?


2
Lihat juga Python (x, y). Ini memiliki target audiens yang serupa seperti Enthought Python, tetapi tidak ada biaya apa pun. code.google.com/p/pythonxy
Eike

1
Saya pikir itu tergantung pada OS yang Anda gunakan. Apa milik anda?
Andrea Zonca

5
Satu keuntungan menggunakan Anaconda bahkan di Ubuntu adalah Anda dapat dengan mudah memiliki instalasi terkelola sebagai pengguna non-root. Atau, Anda dapat memiliki banyak lingkungan dengan banyak versi paket apa pun pada sistem yang sama menggunakan manajer paket conda yang merupakan jantung dari distribusi Anaconda.
Travis Oliphant

5
Perlu diketahui juga, Anaconda sepenuhnya gratis untuk semua orang, akademis dan komersial. Ada lisensi gratis yang tersedia untuk akademisi pengaya Continuum yang merupakan hal terpisah dari Anaconda itu sendiri.
Travis Oliphant

1
Berikut adalah beberapa "fakta": Saya menguji beberapa perhitungan matriks sederhana (produk dot matriks, inversi) menggunakan numpy di anaconda vs vanilla python 2.7. Penerjemah vanilla hanya menggunakan 1 utas laptop saya, yang memiliki 4 inti dan 8 utas, sedangkan anaconda menggunakan semua 8 utas. Jadi kecepatannya sekitar 7 kali lebih cepat di anaconda.
Jason

Jawaban:


48

Pembaruan 2015 : Saat ini saya selalu merekomendasikan Anaconda. Ini mencakup banyak paket Python untuk komputasi ilmiah, sains data, pengembangan web, dll. Ini juga menyediakan alat lingkungan yang unggul conda, yang memungkinkan untuk dengan mudah beralih antar lingkungan, bahkan antara Python 2 dan 3. Juga diperbarui dengan sangat cepat segera sebagai versi baru dari sebuah paket dirilis, dan Anda hanya dapat melakukan conda update packagenameuntuk memperbaruinya.

Jawaban asli di bawah ini :

Di Windows, yang rumit adalah mengompilasi paket matematika, jadi menurut saya penginstalan manual adalah opsi yang layak hanya jika Anda hanya tertarik Python, tanpa paket lain.

Oleh karena itu lebih baik memilih EPD (sekarang Canopy) atau Anaconda.

Anaconda memiliki sekitar 270 paket, termasuk yang paling penting untuk sebagian besar aplikasi ilmiah dan analisis data, yaitu NumPy , SciPy , Pandas , IPython , matplotlib , Scikit-learn . Jadi jika ini cukup untuk Anda, saya akan memilih Anaconda.

Sebaliknya, jika Anda tertarik dengan paket lain, dan bahkan lebih jika Anda menggunakan salah satu paket Enthought ( Chaco misalnya sangat berguna untuk visualisasi data realtime), maka EPD / Canopy mungkin adalah pilihan yang lebih baik. Versi Academic memiliki lebih banyak paket di instalasi dasar, dan lebih banyak lagi di repositori. Anaconda juga termasuk Chaco.


1
Saya sendiri sedang melihat pertanyaan yang sama ini sekarang. Anda menyatakan Canopy menyertakan lebih banyak paket, apakah itu berarti tidak mungkin menginstal paket lain ini di anaconda? Rasanya konyol membatasi diri sendiri tanpa mengetahui jika 2 tahun ke depan saya membutuhkan paket tertentu.
Dominik

3
semoga dalam 2 tahun Anda akan mengupdate OS atau instalasi python ... bagaimanapun ya, Anda dapat menginstal setiap paket python tambahan dalam distribusi python apa pun yang Anda pilih. Untuk paket khusus python, ini sangat sederhana. Untuk paket yang menyematkan ekstensi C atau C ++ (biasanya paket ilmiah) ini lebih sulit, khususnya di bawah windows, jadi sebaiknya pikirkan terlebih dahulu.
Andrea Zonca

13
FWIW, Anaconda juga menyertakan Chaco dan menyertakan lebih dari hanya 20 paket: docs.continuum.io/anaconda/pkgs.html (Bahkan lebih banyak lagi tersedia di repo dan tidak dibundel dengan penginstal.)
Peter Wang

3
Juga FWIW, Anaconda sekarang memiliki info conda-meta / pkg * yang bagus pada semua paket 100-ganjil: memerlukan, versi ... ( conda-require merangkum semua persyaratan.)
denis

3
Saya sudah mencoba menyiapkan python untuk penambangan data di Mac saya. Saya masih belum memecahkan kacang ini, tetapi bagian yang paling mengecewakan sejauh ini adalah menginstal Enthought Canopy Express dan kemudian mengetahui bahwa mereka mengenakan biaya $ 199 untuk akses ke scikit-learn dan nltk.
rrs

11

Saya telah mencoba berbagai distribusi Windows dalam setahun terakhir, mencoba menemukan satu yang cocok untuk lingkungan kerja saya (di belakang proxy, tetapi tanpa akses ke konfigurasi proxy).

Inilah tanggapan saya dari pengalaman:

EPD / Canopy: Kami memiliki lisensi EPD, tetapi sudah lama dan kami tidak dapat memperbarui karena situasi proxy yang aneh. Untuk menambahkan beberapa paket (seperti versi terbaru xlrd / xlwt ), saya kompilasi dari sumber. Untuk memperbarui SciPy dan NumPy , saya menggunakan penginstal yang telah dikompilasi dari http://www.lfd.uci.edu/~gohlke/pythonlibs/ , tetapi terkadang akan mengacaukan kompatibilitas. Saya suka memiliki Py2exe dan Cython yang dikonfigurasi sepenuhnya , dan itu hanya berfungsi di luar kotak.

Setelah beberapa saat, saya mencoba menginstal Canopy versi gratis, tetapi tidak memiliki Cython dan py2exe dan beberapa paket lanjutan khusus yang saya butuhkan, jadi saya tidak pernah benar-benar menggunakannya. Beberapa kolega saya membeli lisensi Canopy lengkap, tetapi kami masih tidak yakin bagaimana mereka akan memperbarui ...

Python (x, y): Tidak ingin berkutat dengan lisensi, saya menginstal Python (x, y) di rumah. Satu-satunya downside yang saya perhatikan saat ini adalah bahwa instalasi standar mengharuskan Anda memilih paket mana yang Anda inginkan. Ini adalah poin yang baik dan buruk, karena saya tidak dapat memastikan bahwa klien saya akan memiliki konfigurasi yang sama persis seperti yang saya lakukan saat menginstal. (Paket alat Enthought dapat diinstal dengan Python (x, y).) Setelah menggunakan Python (x, y) untuk sementara waktu, saya baru menyadari bahwa saya menginstal versi 32 bit. Meskipun tidak jelas di situs web mereka, tampaknya mereka tidak memiliki versi 64 bit per Juli 2015. Saya akan mencopot pemasangannya dan mendapatkan distribusi 64 bit.

Anaconda: Ketika saya pertama kali menulis ini, Anaconda sepertinya belum memiliki cukup paket. Beberapa tahun kemudian, tampaknya jauh lebih baik, saya akan mencobanya!

Manual: Untuk menghindari masalah kompatibilitas versi dengan versi EPD lama kami, saya akhirnya menggunakan instalasi Python manual dan menambahkan paket tambahan dari situs web LFD yang ditautkan di atas. Ini berfungsi dengan baik, tetapi saya tetap menyarankan Canopy kepada pengguna baru yang membutuhkan paket lanjutan (seperti GDAL atau PyFITS ).

Ringkasan: Jika Anda menggunakan Canopy, dapatkan lisensi penuh (Akademik atau dibeli). Lain, gunakan Python (x, y), itu akan berakhir sama.

Di Ubuntu: Tidak perlu distribusi. Semuanya relatif baru (+/- 6 bulan dapat ditoleransi) dan telah dikompilasi sebelumnya. Anda hanya perlu mengeksekusi sudo apt-get install python python-scipydan itu ada di sana! Paket paling canggih juga ada di sana.


Hai Rafael, apakah akhir-akhir ini Anda melihat Anaconda? Itu sangat berarti.
Peter Wang

pythonxy download - saat ini alamatnya bukan di alamat yang diharapkan yang hanya berupa domain terparkir.
pbhj

Menggunakan repositori ubuntu python / scipy dll ... (diinstal dengan apt) baik-baik saja, tetapi selalu ada beberapa versi di belakang, yang bisa menyebalkan karena melewatkan perbaikan bug dan fitur baru yang berguna. Saya biasanya suka menginstal dengan pip dan mendapatkan versi stabil terbaru.
drevicko

4

Jawaban yang lain cukup baik, jadi saya hanya ingin berkomentar tentang satu aspek tertentu yang belum disebutkan. Hal ini mungkin cukup niche, tapi mungkin berpotensi membuat atau menghancurkan Anaconda atau Canopy bagi sebagian orang di bawah sistem Linux:

Anaconda Python build menggunakan mode UCS4 Unicode, sedangkan Enthought Canopy menggunakan UCS2.

Artinya secara praktis adalah bahwa jika Anda mengandalkan ekstensi apa pun yang tidak dapat Anda kompilasi sendiri karena alasan apa pun (misalnya pustaka berpemilik yang telah dikompilasi sebelumnya), jika tidak dibuat untuk versi Python dengan mode yang sama, Anda mungkin lebih cepat atau nanti mengalami kesalahan yang terlihat seperti undefined symbol: PyUnicodeUCS4_AsUTF8String.

Menurut PEP 0513 , UCS4 tampaknya saat ini lebih populer dan direkomendasikan. Selain itu, seluruh masalah kompatibilitas UCS tampaknya hanya memengaruhi versi 2.x dan <3.3.


Ini sebenarnya adalah hal yang berguna untuk diketahui. Terima kasih!
pysolver

-4

Saya menggunakan Anaconda selama bertahun-tahun dan sangat menyukainya. Sayangnya, Notebook IPython (sekarang Jupyter ) tidak tersedia tanpa edisi perusahaan.

Saya ingin menggunakan buku catatan Jupyter di kelas, jadi saya beralih ke Canopy. Tampaknya cukup mudah untuk menginstal semua paket yang kita butuhkan. Memang, kami belum menguji semuanya.


1
Setidaknya Notebook Jupyter saya masih berfungsi dengan versi Anaconda Standar (gratis). Bisakah Anda menjelaskan dari mana Anda mendapatkan informasi itu? Setidaknya di beranda resmi Anaconda, Jupyter masih tercantum.
MSeifert

2
Ini sebenarnya tidak benar. Jupyter / IPython selalu tersedia di Anaconda gratis. FWIW, Continuum Analytics (pembuat Anaconda) mempekerjakan beberapa pengembang inti Jupyter.
Peter Wang

Harap perbaiki jawaban Anda yang salah. Situs web ipython bahkan memberi tahu Anda cara menginstal menggunakan Anaconda: ipython.org/install.html
Bradley Kreider
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.