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?
sumber
Jawaban:
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 melakukanconda update packagename
untuk 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.
sumber
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-scipy
dan itu ada di sana! Paket paling canggih juga ada di sana.sumber
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.
sumber
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.
sumber