Apakah ada cara untuk membuat pip
bermain dengan baik dengan beberapa versi Python? Sebagai contoh, saya ingin menggunakan pip
untuk secara eksplisit menginstal hal-hal yang baik untuk situs saya 2.5 instalasi atau situs saya 2.6 instalasi.
Misalnya, dengan easy_install
, saya menggunakan easy_install-2.{5,6}
.
Dan, ya — aku tahu tentang virtualenv, dan tidak ada — itu's bukan solusi untuk masalah khusus ini.
Saat ini rekomendasi adalah dengan menggunakan python -m pip
, di mana python
adalah versi Python yang ingin anda gunakan. Ini adalah rekomendasi karena ia bekerja di semua versi Python, dan dalam semua bentuk virtualenv. Misalnya:
# The system default python:
$ python -m pip install fish
# A virtualenv's python:
$ .env/bin/python -m pip install fish
# A specific version of python:
$ python-3.6 -m pip install fish
Jawaban sebelumnya, meninggalkan untuk anak cucu:
Sejak versi 0.8, Pip mendukung pip-{version}
. Anda dapat menggunakannya sama seperti easy_install-{version}
:
$ pip-2.5 install myfoopackage
$ pip-2.6 install otherpackage
$ pip-2.7 install mybarpackage
EDIT: pip berubah skema untuk menggunakan pipVERSION
bukan pip-VERSI
di versi 1.5. Anda harus menggunakan berikut jika anda memiliki pip >= 1.5
:
$ pip2.6 install otherpackage
$ pip2.7 install mybarpackage
Cek https://github.com/pypa/pip/pull/1053 untuk lebih jelasnya
Referensi:
Pada Windows, anda dapat menjalankan pip modul menggunakan Python versi melalui Python launcher, py.exe
, jika anda memilih untuk menginstalnya selama Python 3 setup.
tidak ada py -3 -m pip menginstal packagename py -2 -m pip menginstal packagename
Anda bisa menjadi lebih spesifik dan permintaan yang tepat sub-versi Python:
tidak ada py -3.6 -m pip menginstal packagename
Untuk mendapatkan daftar semua terinstal Python versi yang tersedia melalui launcher, jalankan:
tidak ada py --daftar
Atau, anda dapat memulai diinginkan Python dapat dijalankan secara langsung:
tidak ada C:/path/to/specific/python.exe -m pip menginstal packagename
/path/ke/python2.{5,6} /path/ke/pip menginstal PackageName
doesn't bekerja?
Untuk ini untuk bekerja pada setiap python versi yang doesn't memiliki pip sudah terinstal, anda perlu men-download pip dan melakukan python*versi* setup.py install
. Misalnya python3.3 setup.py install
. Ini menyelesaikan kesalahan impor di komentar. (Seperti yang disarankan oleh @hbdgaf)
Aku punya python 2.6 diinstal secara default (Amazon EC2 AMI), tetapi dibutuhkan python2.7 ditambah beberapa paket eksternal untuk aplikasi saya. Dengan asumsi anda sudah menginstal python2.7 bersama dengan default python (2.6 dalam kasus saya). Berikut adalah cara untuk menginstal pip dan paket untuk non-default python2.7
Menginstal pip untuk python versi:
curl -O https://bootstrap.pypa.io/get-pip.py
python27 get-pip.py
Gunakan spesifik pip versi untuk menginstal paket:
pip2.7 install mysql-connector-python --allow-external mysql-connector-python
Jawaban yang lain menunjukkan bagaimana untuk menggunakan pip dengan baik 2.X dan 3.X Python, tetapi tidak menunjukkan bagaimana untuk menangani kasus beberapa Python distribusi (misalnya. asli Phyton dan Anaconda Python).
Saya memiliki total 3 Python versi: asli Python 2.7 dan Python 3.5 dan Anaconda Python 3.5.
Berikut adalah bagaimana saya menginstall paket ke:
/usr/bin/python3 -m pip menginstal python-daemon
/usr/bin/python -m pip menginstal python-daemon
python3 -m pip menginstal python-daemon
atau
pip3 install python-daemon
Lebih sederhana, seperti Anaconda menimpa asli Python binari di lingkungan pengguna.
Tentu saja, menginstal di anaconda harus dilakukan dengan conda
perintah, ini adalah hanya sebuah contoh.
Juga, pastikan bahwa pip diinstal untuk yang spesifik python.Anda mungkin perlu untuk secara manual menginstal pip. Ini bekerja di Ubuntu 16.04:
sudo apt-get install python-pip
atau
sudo apt-get install python3-pip
Aku berlari ke dalam masalah ini sendiri baru-baru ini dan menemukan bahwa aku tidak't mendapatkan hak pip untuk Python 3, di sistem Linux yang juga telah Python 2.
Pertama, anda harus memastikan bahwa anda telah menginstal pip untuk python versi:
Untuk Python Versi 2:
sudo apt-get install python-pip
Untuk Python 3:
sudo apt-get install python3-pip
Kemudian untuk menginstal paket-paket untuk satu versi Python atau yang lain, hanya menggunakan berikut untuk Python versi 2:
pip install <package>
atau untuk Python 3:
pip3 install <package>
Jadi rupanya ada beberapa versi easy_install
dan pip
. Tampaknya menjadi sebuah kekacauan besar. Anyway, ini adalah apa yang saya lakukan untuk menginstall Django untuk Python 2.7 pada Ubuntu 12.10:
$ sudo easy_install-2.7 pip
Searching for pip
Best match: pip 1.1
Adding pip 1.1 to easy-install.pth file
Installing pip-2.7 script to /usr/local/bin
Using /usr/lib/python2.7/dist-packages
Processing dependencies for pip
Finished processing dependencies for pip
$ sudo pip-2.7 install django
Downloading/unpacking django
Downloading Django-1.5.1.tar.gz (8.0Mb): 8.0Mb downloaded
Running setup.py egg_info for package django
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: django
Running setup.py install for django
changing mode of build/scripts-2.7/django-admin.py from 644 to 755
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
changing mode of /usr/local/bin/django-admin.py to 755
Successfully installed django
Cleaning up...
$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>>
Pada Linux, Mac OS X dan sistem POSIX, gunakan berversi perintah-perintah Python dalam kombinasi dengan -m
switch untuk menjalankan sesuai salinan pip
:
python2.7 -m pip install SomePackage
python3.4 -m pip install SomePackage
(tepat berversi pip perintah juga mungkin tersedia)
Pada Windows, gunakan py
Python launcher di kombinasi dengan -m
switch:
py -2.7 -m pip install SomePackage # specifically Python 2.7
py -3.4 -m pip install SomePackage # specifically Python 3.4
jika anda mendapatkan error untuk py -3.4
kemudian mencoba:
pip install SomePackage
Dari sini: https://docs.python.org/3/installing/
Berikut adalah cara untuk menginstal paket-paket untuk berbagai versi yang diinstal pada saat yang sama linux, mac, posix:
python2 -m pip install SomePackage # default Python 2
python2.7 -m pip install SomePackage # specifically Python 2.7
python3 -m pip install SomePackage # default Python 3
python3.4 -m pip install SomePackage # specifically Python 3.4
python3.5 -m pip install SomePackage # specifically Python 3.5
python3.6 -m pip install SomePackage # specifically Python 3.6
Pada Windows, gunakan py Python launcher di kombinasi dengan switch-m:
py -2 -m pip install SomePackage # default Python 2
py -2.7 -m pip install SomePackage # specifically Python 2.7
py -3 -m pip install SomePackage # default Python 3
py -3.4 -m pip install SomePackage # specifically Python 3.4
Di sini saya mengambil masalah. Bekerja untuk Python3. Fitur utama adalah:
Langkah-langkah adalah sebagai berikut:
Jika anda memiliki beberapa tambahan python versi diinstal dalam beberapa cara lain, menyingkirkan mereka, misalnya, menghapus $HOME/.local/lib/python3.x, dll. (juga secara global instal). Don't touch sistem anda's default python3 versi sekalipun.
Download source untuk berbagai versi python di bawah struktur direktori berikut:
$HOME/ python_versions/ : download Python-*.tgz paket di sini dan "tar xvf" mereka. Anda'll mendapatkan direktori seperti ini: Python-3.4.8/ Python-3.6.5/ Python-3.x.y/ ...
mkdir root ./configure --prefix=$PWD/root membuat -j 2 make install virtualenv-ada-tempat-paket -p root/bin/python3.x env
env_python3x.bash:
echo "jenis menonaktifkan untuk keluar" sumber $HOME/python_versions/Python-3.x.y/env/bin/mengaktifkan
sumber $HOME/python_versions/env_python3x.bash
untuk memasukkan virtualenv
pip install-upgrade package_name
Sebagian besar jawaban di sini membahas masalah ini tapi saya ingin menambahkan sesuatu yang terus-menerus membingungkan saya berkaitan dengan menciptakan alternatif instalasi python di/usr/localpada CentOS 7. Ketika saya dipasang di sana, itu muncul seperti pip bekerja karena saya bisa menggunakan
pip2.7 install` dan itu akan menginstal modul. Namun, apa yang saya tidak't tahu mengapa saya baru diinstal versi python itu't melihat apa yang saya menginstal.
Ternyata di CentOS 7 yang sudah ada python2.7 dan pip2.7 /usr/bin
folder. Untuk menginstal pip untuk anda yang baru distribusi python, anda perlu untuk secara khusus memberitahu sudo untuk pergi ke /usr/local/bin
sudo /usr/local/bin/python2.7 -m ensurepip
Ini harus mendapatkan pip2.7 diinstal di direktori /usr/local/bin
folder bersama dengan versi python. Kuncinya adalah bahwa ketika anda ingin menginstal modul, anda juga perlu untuk memodifikasi sudo $PATH
variabel untuk memasukkan /usr/local/bin
atau yang anda butuhkan untuk menjalankan
sudo /usr/local/bin/pip2.7 install <module>
jika anda ingin menginstal modul baru. Butuh waktu selamanya untuk diingat bahwa sudo
itu't segera melihat /usr/local/bin
.
Instalasi dari beberapa versi Python dan masing-masing Paket.
Python versi yang sama pada mesin windows : 2.7 , 3.4 dan 3.6
Instalasi semua 3 versi Python :
JALAN untuk semua 3 versi Python :
Mengganti nama file eksekusi untuk versi :
Diperiksa untuk command prompt dengan semua versi :
Menginstal paket-paket yang terpisah untuk masing-masing versi
Jika anda memiliki beberapa versi serta beberapa arsitektur (32 bit, 64 bit), anda akan perlu untuk menambahkan -32 atau -64 pada akhir versi anda.
Untuk windows, buka cmd dan ketik py --daftar dan akan menghasilkan versi yang telah anda instal. Daftar ini akan terlihat seperti berikut:
Installed Pythons found by py Launcher for Windows
-3.7-64 *
-3.7-32
-3.6-32
Perintah penuh sebagai contoh akan:
py -3.6-32 -m pip install (package)
Jika anda ingin mendapatkan yang lebih mendalam, untuk menginstal versi tertentu dari sebuah paket pada versi tertentu dari python, menggunakan ==(versi) setelah paket. Sebagai contoh,
py -3.6-32 -m pip install opencv-python==4.1.0.25
Konteks: Archlinux
Tindakan:
Install python2-pip:
sudo pacman -S python2-pip
Anda sekarang memiliki pip2.7:
sudo pip2.7 menginstal boto
Tes (dalam kasus saya saya membutuhkan 'boto'): Jalankan perintah berikut:
python2
import boto
Sukses: Tidak ada kesalahan.
Keluar: Pilih+A
misalnya, jika anda menetapkan versi lain (misalnya 3.5) sebagai default dan ingin menginstal pip untuk python 2.7:
Ini mungkin benar-benar salah hal yang harus dilakukan (saya'm python noob), tapi saya hanya pergi dan diedit pip file
``
impor kembali import sys
dari pip._internal impor utama
jika nama == 'utama': sys.argv[0] = re.sub(r'(-script.pyw?/.exe)?$', '', sys.argv[0]) sys.keluar(main()) ``