diperbarui: 2019-05-11: Posting ini sebagian besar menyebutkan virtualenv
, tetapi menurut Python doc tentang pemasangan modul , karena Python 3.5 "penggunaan venv
sekarang direkomendasikan untuk menciptakan lingkungan virtual", sementara virtualenv
merupakan alternatif untuk versi Python sebelum 3.4 .
diperbarui: 2018-08-17: sejak conda-4.4.0 digunakan conda
untuk activate
anaconda di semua platform
diperbarui: 2017-03-27: PEP 513 - manylinux
binari 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 pip
pada sistem Ubuntu saya, tetapi saya menggunakan salah Ubuntu Software Center, synaptic , apt-get
atau 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 requests
tidak 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 numpy
menginstal 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 manylinux
binari 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 manylinux
roda secara default menggunakan OpenBLAS sebagai gantinya dari ATLAS. Anda masih bisa membuatnya dari sumber dengan menggunakan opsi pip --no-use-wheel
atau--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 --user
skema instalasi dengan pip. Anda dapat menggunakan ini untuk memperbarui pip untuk penggunaan pribadi Anda sebagaimana ditunjukkan JF Sebastian dalam komentarnya untuk jawaban lain . CATATAN: -m
ini 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 virtualenv
sejak v13.0.0 karena itu jika versi Anda virtualenv
terlalu 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 -d
untuk 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 sudoers
dan virtualenv
tidak diinstal.
Opsi lain untuk menggunakan lingkungan virtual, atau jika Anda menggunakan share Linux tanpa hak akses root, maka menggunakan skema instalasi Python --user
atau --home=<wherever-you-want>
dengan Python distutils
akan menginstal paket dengan nilai site.USERBASE
atau ke mana pun Anda inginkan. Versi pip yang lebih baru juga memiliki --user
opsi. Jangan gunakan sudo
!
pip install --user virtualenv
Jika versi Linux dari pip Anda terlalu tua, maka Anda dapat meneruskan opsi pengaturan menggunakan --install-option
yang berguna untuk meneruskan opsi kustom ke beberapa setup.py
skrip untuk beberapa paket yang membangun ekstensi, seperti mengatur PREFIX
. Anda mungkin perlu mengekstrak distribusi dan menggunakannya distutils
untuk menginstal paket dengan cara old-school dengan mengetik python setup install [options]
. Membaca beberapa dokumentasi instalasi dan distutils
dokumentasi dapat membantu.
Python cukup bagus untuk ditambahkan di depan site.USERBASE
Anda PYTHONPATH
dari hal lain, jadi perubahan hanya akan berpengaruh pada Anda. Lokasi populer --home
adalah ~/.local
. Lihat panduan instalasi modul Python untuk struktur file yang tepat dan secara khusus di mana paket situs Anda berada. Catatan : jika Anda menggunakan --home
skema instalasi maka Anda mungkin perlu menambahkannya ke PYTHONPATH
variabel lingkungan yang digunakan export
di Anda .bashrc
, .bash_profile
atau 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 ~/.bashrc
atau ~/.bash_profile
untuk menambahkan alur Anaconda ke $PATH
rekomendasi sumber pribadi Andaconda.sh
di Anda ~/.bashrc
yang 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 sudo
menggunakan Anaconda! Jika Anda telah menambahkan Anaconda-Python, miniconda, atau conda ke jalur pribadi Anda, maka Anda harus menghapus PATH
ekspor dari Anda ~/.bashrc
, dan memperbarui ke rekomendasi baru , sehingga sistem Anda Python akan menjadi yang pertama lagi.
Ini agak mirip dengan --user
opsi 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,, conda
secara default menginstal paket dari Anaconda, tetapi Anda dapat memberi sinyal "saluran" yang berbeda menggunakan -c
opsi.
Instal paket dengan conda
seperti pip
:
$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
Tetapi conda
bisa melakukan lebih banyak lagi! Itu juga dapat membuat dan mengelola lingkungan virtual seperti virtualenv
. Oleh karena itu sejak Anaconda menciptakan lingkungan virtual, pip
manajer paket dapat digunakan untuk menginstal paket dari PyPI ke dalam lingkungan Anaconda tanpa root atau sudo
. Jangan tidak menggunakan sudo
dengan Anaconda! Peringatan! Berhati-hatilah saat mencampur pip
dan conda
dalam lingkungan Anaconda, Anda harus mengatur dependensi paket dengan lebih hati-hati. Pilihan lain untuk pip
dalam 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-deps
lalu instal dependensi yang tersisa secara manual conda
.
Anaconda juga mirip dalam beberapa hal dengan Ruby RVM jika Anda terbiasa dengan alat itu. Anaconda conda
juga memungkinkan Anda membuat lingkungan virtual dengan berbagai versi Python . misalnya : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn
akan 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 virtualenv
yang menggunakan source venv/bin/activate
, tapi sebelumnya conda-4.4.0 yang conda
perintah adalah sama seperti virtualenv
dan 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 sudo
untuk menginstal paket Python . Penggunaan sudo
harus menjadi bau bagi Anda bahwa ada sesuatu yang salah. Anda telah diperingatkan.
Semoga sukses dan selamat coding!