diperbarui: 2019-05-11: Posting ini sebagian besar menyebutkan virtualenv, tetapi menurut Python doc tentang pemasangan modul , karena Python 3.5 "penggunaan venvsekarang direkomendasikan untuk menciptakan lingkungan virtual", sementara virtualenvmerupakan alternatif untuk versi Python sebelum 3.4 .
diperbarui: 2018-08-17: sejak conda-4.4.0 digunakan condauntuk activateanaconda di semua platform
diperbarui: 2017-03-27: PEP 513 - manylinuxbinari untuk PyPI
diperbarui: 2016-08-19: Opsi Continuum Anaconda
Ini adalah duplikat dari easy_install / pip atau apt-get .
Untuk paket Python global , gunakan Pusat Perangkat Lunak Ubuntu, apt, apt-get atau synaptic
Ubuntu menggunakan Python untuk banyak fungsi penting, oleh karena itu mengganggu Python dapat merusak OS Anda. Ini adalah alasan utama saya tidak pernah menggunakan pippada sistem Ubuntu saya, tetapi saya menggunakan salah Ubuntu Software Center, synaptic , apt-getatau yang lebih baru hanya apt, yang semuanya secara default menginstal paket dari repositori Ubuntu . Paket-paket ini diuji, biasanya pra-dikompilasi sehingga mereka menginstal lebih cepat dan akhirnya dirancang untuk Ubuntu. Selain itu semua dependensi yang diperlukan juga diinstal dan log instalasi dipertahankan sehingga dapat diputar kembali. Saya pikir sebagian besar paket memiliki repos Launchpad yang sesuai sehingga Anda dapat mengajukan masalah.
Alasan lain untuk menggunakan paket Ubuntu adalah kadang-kadang paket Python ini memiliki nama yang berbeda tergantung dari mana Anda mengunduhnya. Python-chardet adalah contoh dari sebuah paket yang pada suatu waktu dinamai satu hal pada PyPI dan satu lagi dalam repositori Ubuntu. Oleh karena itu melakukan sesuatu seperti pip install requeststidak akan menyadari bahwa chardet sudah diinstal di sistem Anda karena versi Ubuntu memiliki nama yang berbeda, dan akibatnya menginstal versi baru yang akan merusak sistem Anda dengan cara yang tidak signifikan tetapi masih mengapa Anda melakukannya.
Secara umum Anda hanya ingin menginstal kode tepercaya ke dalam OS Anda. Jadi, Anda harus gugup mengetik $ sudo pip <anything-could-be-very-bad>.
Terakhir beberapa hal hanya lebih mudah untuk menginstal menggunakan paket Ubuntu. Sebagai contoh jika Anda mencoba pip install numpymenginstal numpy & scipy kecuali Anda telah menginstal gfortran, atlas-dev, blas-dev dan lapack-dev, Anda akan melihat aliran kesalahan kompilasi yang tak berkesudahan. Namun, menginstal numpy & scipy melalui repositori Ubuntu semudah ...
$ sudo apt-get install python-numpy python-scipy
Anda beruntung, karena Anda menggunakan Ubuntu, salah satu distribusi yang paling banyak didukung dan sering diperbarui. Kemungkinan besar setiap paket Python yang Anda perlukan ada di repositori Ubuntu, dan mungkin sudah diinstal pada mesin Anda. Dan setiap 6 bulan, siklus paket baru akan dirilis dengan distribusi Ubuntu terbaru.
Jika Anda 100% yakin bahwa paket tersebut tidak akan mengganggu sistem Ubuntu Anda dengan cara apa pun, maka Anda dapat menginstalnya menggunakan pip dan Ubuntu cukup bagus untuk menjaga paket-paket ini terpisah dari paket distro dengan menempatkan paket-paket distro dalam folder bernama dist-packages/. Repositori Ubuntu memiliki kedua pip, virtualenv dan setuptools. Namun, saya menyarankan saran Wojciech untuk menggunakan virtualenv.
Untuk proyek Python pribadi, gunakan pip dan roda dalam virtualenv
Jika Anda memerlukan versi terbaru, atau modul tidak ada dalam repositori Ubuntu maka mulai virtualenv dan gunakan pip untuk menginstal paket. Meskipun pip dan setuptools telah bergabung, IMO pip lebih disukai daripada instal mudah atau distutil, karena itu akan selalu menunggu sampai paket sepenuhnya diunduh dan dibangun sebelum menyalinnya ke sistem file Anda, dan itu membuat upgrade atau menghapus angin sepoi-sepoi. Dalam banyak hal ini mirip dengan apt-get, karena biasanya menangani dependensi dengan baik. Namun Anda akan mungkin harus menangani beberapa dependensi sendiri, tapi karena PEP 513 diadopsi sekarang ada manylinuxbinari di Paket Indeks Python (PyPI) untuk distro Linux populer seperti Ubuntu dan Fedora .misalnya seperti yang disebutkan di atas untuk NumPy dan SciPy pastikan Anda telah menginstal gfortran, atlas-dev, blas-dev dan lapack-dev dari repositori Ubuntu. Misalnya, NumPy dan SciPy sekarang didistribusikan untuk Ubuntu sebagai manylinuxroda secara default menggunakan OpenBLAS sebagai gantinya dari ATLAS. Anda masih bisa membuatnya dari sumber dengan menggunakan opsi pip --no-use-wheelatau--no-binary <format control> .
~$ sudo apt-get install gfortran libblas-dev liblapack-dev libatlas-dev python-virtualenv
~$ mkdir ~/.venvs
~$ virtualenv ~/.venvs/my_py_proj
~$ source ~/.venvs/my_py_proj/bin/activate
~(my_py_proj)$ pip install --no-use-wheel numpy scipy
Lihat bagian berikutnya, "Anda tidak berada di sudoers", di bawah ini untuk menginstal versi terbaru dari pip, setuptools, virtualenv atau roda ke profil pribadi Anda menggunakan --userskema instalasi dengan pip. Anda dapat menggunakan ini untuk memperbarui pip untuk penggunaan pribadi Anda sebagaimana ditunjukkan JF Sebastian dalam komentarnya untuk jawaban lain . CATATAN: -mini benar-benar hanya diperlukan pada MS Windows saat memperbarui pip .
python -m pip install --user pip setuptools wheel virtualenv
Versi pip yang lebih baru secara otomatis me-cache roda, jadi yang berikut hanya berguna untuk versi pip yang lebih lama. Karena Anda mungkin berakhir menginstal ini berkali-kali, pertimbangkan untuk menggunakan roda dengan pip untuk membuat ruang kemudi. Roda sudah disertakan virtualenvsejak v13.0.0 karena itu jika versi Anda virtualenvterlalu lama, Anda mungkin perlu menginstal roda terlebih dahulu.
~(my_py_proj)$ pip install wheel # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy
Ini akan membuat file roda biner <cwd>/wheelhouse, gunakan -duntuk menentukan direktori yang berbeda. Sekarang jika Anda memulai virtualenv lain dan Anda membutuhkan paket yang sama yang sudah Anda buat, Anda dapat menginstalnya dari ruang kemudi Anda menggunakanpip install --find-links=<fullpath>/wheelhouse
Baca Menginstal Modul Python di dokumentasi Python dan Menginstal paket pada halaman utama Indeks Paket Python . Juga pip , venv , virtualenv , dan roda .
Jika Anda tidak masuk sudoersdan virtualenvtidak diinstal.
Opsi lain untuk menggunakan lingkungan virtual, atau jika Anda menggunakan share Linux tanpa hak akses root, maka menggunakan skema instalasi Python --useratau --home=<wherever-you-want>dengan Python distutilsakan menginstal paket dengan nilai site.USERBASEatau ke mana pun Anda inginkan. Versi pip yang lebih baru juga memiliki --useropsi. Jangan gunakan sudo!
pip install --user virtualenv
Jika versi Linux dari pip Anda terlalu tua, maka Anda dapat meneruskan opsi pengaturan menggunakan --install-optionyang berguna untuk meneruskan opsi kustom ke beberapa setup.pyskrip untuk beberapa paket yang membangun ekstensi, seperti mengatur PREFIX. Anda mungkin perlu mengekstrak distribusi dan menggunakannya distutilsuntuk menginstal paket dengan cara old-school dengan mengetik python setup install [options]. Membaca beberapa dokumentasi instalasi dan distutilsdokumentasi dapat membantu.
Python cukup bagus untuk ditambahkan di depan site.USERBASEAnda PYTHONPATHdari hal lain, jadi perubahan hanya akan berpengaruh pada Anda. Lokasi populer --homeadalah ~/.local. Lihat panduan instalasi modul Python untuk struktur file yang tepat dan secara khusus di mana paket situs Anda berada. Catatan : jika Anda menggunakan --homeskema instalasi maka Anda mungkin perlu menambahkannya ke PYTHONPATHvariabel lingkungan yang digunakan exportdi Anda .bashrc, .bash_profileatau di shell Anda agar paket lokal Anda tersedia dengan Python.
Gunakan Continuum Anaconda Python untuk Matematika, Sains, Data, atau Proyek Pribadi
Jika Anda menggunakan Python untuk matematika, sains, atau data, maka IMO pilihan yang sangat bagus adalah Distribusi Anaconda-Python atau distro miniconda yang lebih mendasar yang dirilis oleh Anaconda, Inc. (sebelumnya dikenal sebagai Continuum Analytics ) . Meskipun siapa pun dapat mengambil manfaat dari menggunakan Anaconda untuk proyek-proyek pribadi, instalasi default mencakup lebih dari 500 paket matematika dan sains seperti NumPy, SciPy, Pandas, dan Matplotlib , sementara miniconda hanya menginstal Anaconda-Python dan manajer lingkungan conda. Anaconda hanya menginstal ke dalam profil pribadi Anda, yaitu: /home/<user>/ dan mengubah ~/.bashrcatau ~/.bash_profileuntuk menambahkan alur Anaconda ke $PATH rekomendasi sumber pribadi Andaconda.shdi Anda ~/.bashrcyang memungkinkan Anda gunakan conda activate <env|default is base>untuk memulai anaconda - ini hanya mempengaruhi Anda - jalur sistem Anda tidak berubah . Karena itu Anda tidak perlu akses root atau sudomenggunakan Anaconda! Jika Anda telah menambahkan Anaconda-Python, miniconda, atau conda ke jalur pribadi Anda, maka Anda harus menghapus PATHekspor dari Anda ~/.bashrc, dan memperbarui ke rekomendasi baru , sehingga sistem Anda Python akan menjadi yang pertama lagi.
Ini agak mirip dengan --useropsi yang saya jelaskan di bagian terakhir kecuali itu berlaku untuk Python secara keseluruhan dan bukan hanya paket. Oleh karena itu Anaconda benar-benar terpisah dari sistem Anda Python , itu tidak akan mengganggu sistem Anda Python, dan hanya Anda yang dapat menggunakan atau mengubahnya. Karena menginstal versi baru Python dan semua pustaka, Anda memerlukan setidaknya 200MB ruang, tetapi sangat pintar tentang caching dan mengelola pustaka yang penting untuk beberapa hal keren yang dapat Anda lakukan dengan Anaconda.
Anaconda mengumpulkan koleksi binari dan pustaka Python yang dibutuhkan oleh dependensi dalam repositori online (sebelumnya disebut binstar ) , dan mereka juga meng-host paket pengguna sebagai "saluran" yang berbeda. Manajer paket yang digunakan oleh Anaconda,, condasecara default menginstal paket dari Anaconda, tetapi Anda dapat memberi sinyal "saluran" yang berbeda menggunakan -copsi.
Instal paket dengan condaseperti pip:
$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
Tetapi condabisa melakukan lebih banyak lagi! Itu juga dapat membuat dan mengelola lingkungan virtual seperti virtualenv. Oleh karena itu sejak Anaconda menciptakan lingkungan virtual, pipmanajer paket dapat digunakan untuk menginstal paket dari PyPI ke dalam lingkungan Anaconda tanpa root atau sudo. Jangan tidak menggunakan sudodengan Anaconda! Peringatan! Berhati-hatilah saat mencampur pipdan condadalam lingkungan Anaconda, Anda harus mengatur dependensi paket dengan lebih hati-hati. Pilihan lain untuk pipdalam lingkungan conda adalah menggunakan saluran conda-forge, tetapi juga yang terbaik untuk melakukannya di lingkungan conda baru dengan conda-forge sebagai saluran default. Sebagai upaya terakhir, jika Anda tidak dapat menemukan paket di mana pun kecuali di PyPI, pertimbangkan untuk menggunakan --no-depslalu instal dependensi yang tersisa secara manual conda.
Anaconda juga mirip dalam beberapa hal dengan Ruby RVM jika Anda terbiasa dengan alat itu. Anaconda condajuga memungkinkan Anda membuat lingkungan virtual dengan berbagai versi Python . misalnya : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seabornakan membuat tumpukan ilmiah / data-sains menggunakan Python-3.5 di lingkungan baru yang disebut py35sci. Anda dapat beralih lingkungan menggunakan conda. Sejak conda-4.4.0, ini sekarang berbeda dengan virtualenvyang menggunakan source venv/bin/activate, tapi sebelumnya conda-4.4.0 yang condaperintah adalah sama seperti virtualenvdan juga digunakan source:
# AFTER conda-4.4
~/Projects/myproj $ conda activate py35sci
# BEFORE conda-4.4
~/Projects/myproj $ source activate py35sci
Tapi tunggu, masih ada lagi! Anaconda juga dapat menginstal berbagai bahasa seperti R untuk pemrograman statistik dari saluran Anacondar . Anda bahkan dapat mengatur saluran Anda sendiri untuk mengunggah distribusi paket yang dibuat untuk konda . Seperti yang disebutkan conda-forge mempertahankan build otomatis dari banyak paket pada PyPI di conda-forge Anaconda channel .
Epilog
Ada banyak opsi untuk memelihara proyek Python Anda di Linux tergantung pada kebutuhan dan akses pribadi Anda. Namun, jika ada satu hal yang saya harap Anda ambil dari jawaban ini adalah Anda seharusnya hampir tidak perlu menggunakan sudountuk menginstal paket Python . Penggunaan sudoharus menjadi bau bagi Anda bahwa ada sesuatu yang salah. Anda telah diperingatkan.
Semoga sukses dan selamat coding!