Perbedaan antara pemasangan conda dan pemasangan pip.Perbandingan fungsi, dll. [Python]

2019 5 年 月 日 26

Sampai saat ini pip install hanya dikenal sebagai pengganti ketika conda install tidak bisa digunakan.Jika paket yang saya inginkan tidak ada di repositori Anaconda, saya menginstalnya dengan pip, tetapi pada satu titik lingkungan rusak karena konflik ini.

Lingkungan Anaconda rusak saat saya mengira Jupyter Notebook tidak dapat dimulai

Karena ini adalah kesempatan yang bagus, saya memeriksa perbedaan antara pip dan conda, jadi saya akan meninggalkannya sebagai memorandum di bawah.

Perbedaan antara conda dan pip

Apa itu Konda

Singkatnya, ini adalah manajer paket dan sistem manajemen lingkungan yang menjadi standar dengan Anaconda/Miniconda.

Anaconda adalah platform yang menyediakan kumpulan paket untuk ilmu data (Anda sudah tahu jika Anda sedang mencari perbedaan antara conda dan pip). Anda dapat menginstal bahasa pemrograman untuk ilmu data seperti Python dan R, dan paket yang diperlukan untuk analisis statistik dan pembelajaran mesin sekaligus, dan segera membangun lingkungan untuk menggunakan Python.
Ada juga Miniconda yang hanya memiliki konfigurasi minimal.

conda hanya berfungsi saat diinstal oleh penginstal Anaconda atau penginstal miniconda. Bahkan jika conda diinstal di lingkungan python+pip, itu tidak dapat digunakan seperti distribusi Anaconda.

Apa itu pip

Pemasang paket python standar dan sistem manajemen paket yang disertakan dengan pemasangan python murni.

Itu mengunduh dan menginstal paket dari Python Package Index (PyPI), sebuah repositori untuk bahasa pemrograman Python.

Perbedaan pada masing-masing fungsi

Saya merangkum peran conda dan pip dalam tabel sederhana.

機能kondabiji
Menginstal dan mengelola paketbisabisa
Beralih versi PythonbisaTidak (gantikan dengan pipenv, pyenv)
Manajemen lingkungan virtualbisaTidak (gantikan pipenv, virtualenv, venv)

Conda juga merupakan sistem manajemen lingkungan, sehingga Anda dapat membangun lingkungan virtual, mengubah versi Python Anda menjadi 3.7 dan beralih ke 2.7.

Dengan pip, Anda akan menginstal dan menggunakan paket seperti pyenv (kontrol versi) dan venv (manajemen lingkungan virtual).

Baru-baru ini, pipenv telah keluar, dan tampaknya memiliki fungsi yang hampir menggantikan conda.

conda install vs pip install

Meskipun conda install dan pip install memiliki perintah yang sangat mirip, cara mereka menginstal paket tampaknya sangat berbeda. Ada tabel perbandingan yang mudah dipahami di situs anaconda.com, jadi saya akan mengutipnya (Jepang dan dimodifikasi agar lebih mudah dipahami).

instalasi condapemasangan pip
Format paketbinerroda atau sumber
menyusun不要必要
jenis paketBahasa lain juga dimungkinkanular piton saja
Manajemen lingkungan virtual, manajemen versi可能Tidak (ganti dengan virtualenv, venv)
Pemeriksaan ketergantunganあ りtak satupun
Sumber unduhan paketrepositori anaconda, anaconda cloudPyPl

・conda mendukung bahasa selain python

Anaconda/Miniconda adalah cross-platform yang memungkinkan Anda menginstal beberapa bahasa pemrograman seperti Python, R, Ruby, Java, JavaScript, C/C++, FORTRAN, dan paket-paketnya.

Conda dapat menginstal paket perangkat lunak yang ditulis dalam berbagai bahasa pada lintas platformnya.

pip hanya dapat menginstal paket Python.

・Apakah kompilasi diperlukan

Lebih dari 1000 paket yang dapat diinstal dengan perintah conda disimpan dalam repositori khusus yang disebut Anaconda cloud.

Paket-paket ini adalah file biner yang telah dikompilasi sebelumnya, sehingga Anda dapat mengunduh dan menginstalnya tanpa kompiler.

File yang Anda instal dengan pip menyertakan file sumber, jadi Anda harus mengompilasinya di sisi klien.

Ini dapat menyebabkan masalah tergantung pada lingkungan, dan dianggap sebagai salah satu penyebab banyak batu sandungan dalam membangun lingkungan.Mungkin.Ini mungkin memerlukan ketergantungan eksternal.

・Ada atau tidak adanya pemeriksaan ketergantungan

Tampaknya pip tidak memenuhi semua dependensi pada waktu yang sama setiap kali sebuah paket diinstal.Dalam hal ini, konflik akan terjadi jika paket yang terinstal memiliki versi berbeda dari paket yang mereka andalkan.

Conda mendukung ini dengan menyediakan pemecah SAT yang mengumpulkan metadata dari semua paket untuk mengetahui ketergantungan.Selama penginstalan, dengan cepat memahami ketergantungan kompleks antara paket dan pembaruan dan menginstal dengan tepat.

・Perbedaan dalam kecepatan eksekusi

Ada juga informasi bahwa operasi matriks dengan numpy diinstal dengan conda lebih cepat.Bergantung pada jenis perhitungannya, perbedaannya tampaknya lebih dari dua kali lipat.

Ada berbagai metode implementasi untuk BLAS (Basic Linear Algebra Subprograms), yang sebenarnya bertanggung jawab atas operasi matriks yang disebut NumPy. Salah satunya adalah Intel MKL (Math Kernel Library) yang dikembangkan oleh Intel. ).Sebenarnya BLAS yang dipanggil dari NumPy yang diinstall oleh Anaconda adalah MKL, namun ketika NumPy diinstall dengan pip, biasanya digunakan BLAS yang disebut OpenBLAS, jadi ada kemungkinan akan ada perbedaan performa disini.

Perbedaan kecepatan antara NumPy di ​​Anaconda dan NumPy dengan pip - Orizuru

BLAS adalah perpustakaan yang mengerjakan matriks dasar dan matematika vektor. Ada lebih banyak semut hidup di perpustakaan numpy dan semakin membingungkan...

"Seberapa banyak perubahan kecepatan pemrosesan kalkulasi aktual tergantung pada perbedaan BLAS" dan "Cara mengetahui BLAS mana yang digunakan di lingkungan Anda" dirangkum secara mendetail di halaman berikut.Jika Anda tidak keberatan, silakan merujuknya.

Tampaknya kecepatan perhitungan berubah tergantung pada BLAS yang digunakan di Numpy [Python]

Itulah perbedaan antara conda dan pip.

referensi


Memahami Conda dan Pip
https://conda.io/en/latest/
Membandingkan kecepatan NumPy Anaconda dan NumPy PyPI
Hentikan Instalasi Tensorflow menggunakan pip demi kinerja!