Birden fazla Python sürümü ve PIP ile uğraşmak?


499

pipPython'un birden fazla sürümü ile iyi oynamanın bir yolu var mı ? Örneğin, pipşeyleri sitem 2.5 veya site 2.6 yüklememe açık bir şekilde yüklemek için kullanmak istiyorum .

Örneğin easy_install, ben kullanıyorum easy_install-2.{5,6}.

Ve evet - virtualenv'i biliyorum ve hayır - bu özel sorunun çözümü değil.


1
@YiboYang pip34ve gibi şeylerle çalışır pip35mı?
JinSnow

2
@JinSnow pip3.xPaketleri yüklemek istediğiniz python sürümünü yönetirse (belki de pip3.x -Vgörmek için çalıştırınız ). Veya birçok python sürümü üzerinde daha iyi kontrol sahibi olmak için @ Hugo'nun çözümünü kullanın.
Yibo Yang

Yanıtlar:


625

Geçerli öneri kullanımına ise python -m pip, pythonkullanmak istediğiniz Python versiyonudur. Bu öneri çünkü Python'un tüm sürümlerinde ve tüm sanal formlarda çalışıyor. Örneğin:

# 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

Önceki cevap, gelecek nesiller için bırakıldı:

Sürüm 0.8'den beri Pip destekliyor pip-{version}. Şununla aynı şekilde kullanabilirsiniz easy_install-{version}:

$ pip-2.5 install myfoopackage
$ pip-2.6 install otherpackage
$ pip-2.7 install mybarpackage

EDIT : pip sürüm 1.5 pipVERSIONyerine kullanmak için şemasını değiştirdi pip-VERSION. Varsa aşağıdakileri kullanmalısınız pip >= 1.5:

$ pip2.6 install otherpackage
$ pip2.7 install mybarpackage

Kontrol https://github.com/pypa/pip/pull/1053 Daha fazla ayrıntı için


Referanslar:


12
Çalışmıyor. Pip'in en son sürümü bir pip-2.6 betiği yüklemesine rağmen, bir pip-2.5 betiği yüklemek zahmetine girmedi.
Chris B.

2
Python2.5 pip sürümünüzü güncellemeniz gerekir ... Sadece pip kullandığınız python altında pip- {PYVERSION} oluşturur.
Hugo Tavares

4
Bu yanlış. Ubuntu üzerinde Python2.7 ile pip 1.2.1 çalıştırıyorum ve alternatif pip sürümleri yok.
Cerin

2
Muhtemelen yüklü vermedi: @rodling pipyoluyla pip/ easy_installveya get-pip.pyveya python2.7 yok. python2.7'niz varsa, deneyin: pip install --upgrade pipve yapmalısınız pipvepip-2.7
Hugo Tavares

2
@JCRocamonde: program pip$ PATH ortam değişkenine göre seçilir. "Varsayılan" pip programının ne olduğunu değiştirmek isterseniz, $ PATH ortam değişkenini yeniden sıralayın. $ PATH hakkında daha fazla bilgi için "path ortam değişkeni linux" gibi bir şey arayın.
Hugo Tavares

117

Windows'da, içinden belirli bir Python sürümünü kullanarak pip modülünü yürütebileceği Python başlatıcı , py.exe, Python 3 kurulum sırasında yüklemek isterseniz.

py -3 -m pip install packagename
py -2 -m pip install packagename

Daha da spesifik olabilir ve Python'un tam bir alt sürümünü isteyebilirsiniz:

py -3.6 -m pip install packagename

Başlatıcı aracılığıyla kullanılabilen tüm yüklü Python sürümlerinin bir listesini almak için şunu çalıştırın:

py --list

Alternatif olarak, istenen Python yürütülebilir dosyasını doğrudan başlatabilirsiniz:

C:/path/to/specific/python.exe -m pip install packagename

11
Hem 2.7 hem de
3.5'in

1
İçin hiçbir yolu var mı python2, python3, pip2ve pip3Windows üzerinde?
thomthom

1
bu benim için pencerelerde çalıştı. 3 yüklü ve daha sonra 2 yüklü
daneshjai

1
Teşekkür ederim, bu benim için çalıştı! Ne kadar zor olduğuna inanamıyorum. (Bunlardan hiçbiri veya varyasyonlar python-3.7 -m pip install veya python-3.7 -m pip install veya python3.7 -m pip install benim için çalıştı ...)
jeppoo1

75

/path/to/python2.{5,6} /path/to/pip install PackageName çalışmıyor mu?

Bunun için pip'in kurulu olmadığı herhangi bir python sürümünde çalışması için pip'i indirmeniz ve yapmanız gerekir python*version* setup.py install. Örneğin python3.3 setup.py install. Bu, yorumlardaki içe aktarma hatasını giderir. (@Hbdgaf tarafından önerildiği gibi)


4
Bunun python 3 üzerinde çalışması için pip indirmeniz ve "python3 setup.py install" yapmanız gerekir. Şahsen ben bu çözümü çok hoş bulmuyorum. Başlangıç ​​için pip komutunun ikili olmadığını bile bilmiyordum. Bu @bwinton'a yönelik bir eleştiri değil, sadece bunu yapmanın daha iyi bir yolu olmadığına şaşırdım.
Mike Vella

28
"ImportError: pkg_resources adlı modül yok"
Cerin

3
İthalatçı ile ilgili sorunun, yukarıdaki aynı yoruma yönelik çözümden daha fazla artış gösterdiğine şaşırdım.
RobotHumans

1
Ayrıca, / path / to / pip şudur: python2. {5,6} / Scripts / pip2. {5,6}
raul

2
Bir python modülü çağırmak için kullanmalısınızpython2.7 -m pip install PackageName
llrs

52

Varsayılan olarak (Amazon EC2 AMI) python 2.6 yükledim, ancak uygulamam için python2.7 artı bazı harici paketlere ihtiyacım vardı. Varsayılan python ile birlikte zaten python2.7 kurduğunuzu varsayarsak (benim durumumda 2.6). Varsayılan olmayan python2 için pip ve paketleri nasıl yükleyeceğiniz aşağıda açıklanmıştır

Python sürümünüz için pip kurun:

curl -O https://bootstrap.pypa.io/get-pip.py
python27 get-pip.py

Paketleri yüklemek için belirli pip sürümünü kullanın:

pip2.7 install mysql-connector-python --allow-external mysql-connector-python

2
harika python 3.4 için benim için çalıştı python3 get-pip.pyve daha sonra pip komutunu kullanarakpip34 install example
Karl Adler

Teşekkürler. Çok kullanışlı. İki farklı sunucuda test edilmiştir.
user2099484

3
Bu, 'python27 get-pip.py' yerine 'python2.7 get-pip.py' kullandığımda işe yaradı
SummerEla

Yarım yamalak hisseden adamım, benim için Centos 5'e pip2.6 kurmaya çalıştı.
Aaron R.

Got Could not find a version that satisfies the requirement pip (from versions: ) No matching distribution found for pipBen çalıştığımızdapython2.6 get-pip.py
Pyderman

29

Benim için pencerelerde şu şekilde çalıştı:

  1. Python dosyalarının adını python.py ve pythonw.exe'yi python3.py olarak değiştirdim pythonw3.py

  2. Sonra komut isteminde sadece bu komutu çalıştırdı:

    python3 -m pip install package


4
Mac'te pip kullanarak python3'e paketleri nasıl yükleyeceğini bulan herkes için, bu komut paketleri nasıl kuracağınızdır. Saatlerce arama yaptım ve sonunda buldum!
sidney

25

Diğer cevaplar, pip'in hem 2.X hem de 3.X Python ile nasıl kullanılacağını gösterir, ancak çoklu Python dağıtımlarının (örn. Orijinal Python ve Anaconda Python) nasıl ele alınacağını göstermez .

Toplam 3 Python sürümü var: orijinal Python 2.7 ve Python 3.5 ve Anaconda Python 3.5.

Bir paketi şu şekilde yüklerim:

  1. Orijinal Python 3.5 :

    /usr/bin/python3 -m pip install python-daemon
  2. Orijinal Python 2.7 :

    /usr/bin/python -m pip install python-daemon
  3. Anaconda Python 3.5 :

    python3 -m pip install python-daemon

    veya

    pip3 install python-daemon

    Anaconda, kullanıcı ortamındaki orijinal Python ikili dosyalarını geçersiz kıldığından daha basittir.

    Tabii ki, anaconda'ya kurulum condakomutla yapılmalıdır , bu sadece bir örnektir.


Ayrıca, belirli bir python için pip'in kurulu olduğundan emin olun. Pip'i manuel olarak kurmanız gerekebilir. Bu Ubuntu 16.04'te çalışır:

sudo apt-get install python-pip 

veya

sudo apt-get install python3-pip

Burada Anaconda ile ilgili tavsiye doğru değil ... hiçbir şeyi "geçersiz kılmaz". Anaconda sürümünü sisteminizde varsayılan olarak alması, özel yapılandırmanızın, her yorumlayıcıyı nasıl kurduğunuzun ve ortamınızın yol düzeninin ... bir yan etkisidir.
Corey Goldberg

@CoreyGoldberg Kabul ediyorum, Ubuntu 16.04 kurulumumda varsayılan oldu
quasoft

1
Siz efendim, siz erkeksin. Bu konuyu çevreleyen tüm anlamsız açıklamalar arasında, benim için anlamlı olan tek şey bu. Bu komutları takma ve hayatımla devam etme zamanı! TEŞEKKÜR EDERİM.
Yüzey

14

Bu konuyla yakın zamanda karşılaştım ve Python 2'ye sahip Linux sistemimde Python 3 için doğru pip'i alamadığımı fark ettim.

Öncelikle python sürümünüz için pip yüklediğinizden emin olmalısınız:

Python 2 için:

sudo apt-get install python-pip

Python 3 için:

sudo apt-get install python3-pip

Daha sonra bir Python sürümü veya diğeri için paketler yüklemek için Python 2 için aşağıdakileri kullanmanız yeterlidir:

pip install <package>

veya Python 3 için:

pip3 install <package>

11

pip aynı zamanda bir python paketidir. Bu nedenle, modülleri belirli bir python sürümüne kurmanın en kolay yolu aşağıda olacaktır

 python2.7 /usr/bin/pip install foo

veya

python2.7 -m pip install foo

10

Görünüşe göre easy_install ve ' nin birden fazla versiyonu var pip. Büyük bir karmaşa gibi görünüyor. Her neyse, bu Ubuntu 12.10 üzerinde Python 2.7 için Django yüklemek için yaptım:

$ 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
>>> 

8

Buradan: https://docs.python.org/3/instal/

Aynı anda yüklü çeşitli sürümler için paketleri nasıl kuracağınız 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

On Windows'un , -m ile birlikte py Python başlatıcısı kullanın:

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

Ayrıca kontrol pipenv
etmeyi

7

Linux, Mac OS X ve diğer POSIX sistemlerinde, -maşağıdakilerin uygun kopyasını çalıştırmak için sürümle birlikte verilen Python komutlarını anahtarla birlikte kullanın pip:

python2.7 -m pip install SomePackage
python3.4 -m pip install SomePackage

(uygun şekilde sürümlendirilmiş pip komutları da mevcut olabilir)

Windows'ta, pyPython başlatıcısını -manahtarla birlikte kullanın :

py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3.4 -m pip install SomePackage  # specifically Python 3.4

için bir hata alırsanız şunu py -3.4deneyin:

pip install SomePackage

5

Python ve ilgili Paketlerin birden fazla versiyonunun kurulumu.

Aynı Windows makinesinde Python sürümü: 2.7, 3.4 ve 3.6

Python'un 3 sürümünün tamamı :

  • Python 2.7, 3.4 ve 3.6'yı aşağıdaki yollarla yükledi

resim açıklamasını buraya girin

Python'un 3 sürümünün tümü için PATH :

  • PATH değişkeninin (Sistem Değişkenlerinde) aşağıdaki yolları içerdiğinden emin olun - C: \ Python27 \; C: \ Python27 \ Scripts; C: \ Python34 \; C: \ Python34 \ Scripts; C: \ Python36 \; C: \ Python36 \ Script \;

Sürümler için yürütülebilir dosyaları yeniden adlandırma :

  • C: \ Python36 ve C: \ Python34'teki python yürütülebilir adını sırasıyla python36 ve python34 olarak değiştirdi.

resim açıklamasını buraya girin

Tüm sürümlerde komut istemi kontrol edildi:

resim açıklamasını buraya girin

Her sürüm için paketleri ayrı ayrı yükleme

resim açıklamasını buraya girin


Teşekkürler !!! Bu en iyi yoldur
rakshit ks

4

Birden çok sürümünüzün yanı sıra birden çok mimariniz (32 bit, 64 bit) varsa, sürümünüzün sonuna bir -32 veya -64 eklemeniz gerekir.

Pencereler için cmd'ye gidin ve py --list yazın; yüklediğiniz sürümleri üretecektir. Liste aşağıdaki gibi görünecektir:

Installed Pythons found by py Launcher for Windows
 -3.7-64 *
 -3.7-32
 -3.6-32

Örnek olarak tam komut:

py -3.6-32 -m pip install (package)

Daha fazla ayrıntı elde etmek istiyorsanız, belirli bir python sürümüne bir paketin belirli bir sürümünü yüklemek için, paketten sonra == (sürüm) kullanın. Örnek olarak,

py -3.6-32 -m pip install opencv-python==4.1.0.25

2

Buradaki cevapların çoğu sorunu ele alıyor, ancak /usr/localCentOS 7'de alternatif bir python yüklemesi yaratma konusunda sürekli olarak kafa karıştırıcı bir şey eklemek istiyorum.pip2.7 install ve modülleri kurar. Ancak, anlayamadığım python'un yeni yüklenen versiyonunun neden yüklediğimi görmediğiydi.

CentOS 7'de /usr/binklasörde zaten bir python2.7 ve bir pip2.7 olduğu ortaya çıkıyor . Yeni python dağıtımınız için pip yüklemek için sudo'ya/usr/local/bin

sudo /usr/local/bin/python2.7 -m ensurepip

Bu, pip2.7'yi /usr/local/binpython sürümünüzle birlikte klasörünüze yüklemelidir . İşin püf noktası, modülleri kurmak istediğinizde, sudo $PATHdeğişkenini içerecek şekilde değiştirmeniz /usr/local/binveya yürütmeniz gerektiğidir

sudo /usr/local/bin/pip2.7 install <module>

yeni bir modül takmak istiyorsanız. Bunun sudohemen görülmediğini hatırlamak sonsuza dek sürdü /usr/local/bin.


2

İşte benim sorunum. Python için çalışır 3. Ana özellikleri:

  • Her Python sürümü kaynaktan derlenmiştir
  • Tüm sürümler yerel olarak yüklenir
  • Sisteminizin varsayılan Python kurulumunu hiçbir şekilde değiştirmez
  • Her Python sürümü virtualenv ile izole edilmiştir

Adımlar aşağıdaki gibidir:

  1. Başka bir şekilde yüklenmiş birkaç ekstra python sürümünüz varsa, bunlardan kurtulun, örneğin, $ HOME / .local / lib / python3.x , vb. (Ayrıca global olarak kurulu olanları da kaldırın ). Yine de sisteminizin varsayılan python3 sürümüne dokunmayın.

  2. Aşağıdaki dizin yapısında farklı python sürümleri için kaynak indirin:

    $HOME/
        python_versions/ : download Python-*.tgz packages here and "tar xvf" them.  You'll get directories like this:
          Python-3.4.8/
          Python-3.6.5/
          Python-3.x.y/
          ...
  3. Her At "Python 3.xy /" dizini aşağıdakileri yapın (do DEĞİL aşamaların herhangi birinde "sudo" kullanın!):

    mkdir root
    ./configure --prefix=$PWD/root 
    make -j 2
    make install
    virtualenv --no-site-packages -p root/bin/python3.x env
  4. "Python_versions /" dizininde şöyle dosya oluşturun:

    env_python3x.bash:
    
    #!/bin/bash
    echo "type deactivate to exit"
    source $HOME/python_versions/Python-3.x.y/env/bin/activate
  5. Şimdi, python3.x'i seçmek istediğinizde,

    source $HOME/python_versions/env_python3x.bash

    virtualenv'e girmek için

  6. Virtualenv'deyken, en sevdiğiniz python paketlerini

    pip install --upgrade package_name
  7. Virtualenv ve python sürümünden çıkmak için "deactivate" yazmanız yeterlidir.

GÜNCELLEME

Anlaşılmadığı anlaşılıyor --no-site-packages. Bunun için kolay bir düzeltme var: Virtualenv'i etkinleştirdikten sonra, HOME env değişkenini gerçek ana dizininizden başka bir yere yönlendirin, yani:

export HOME=some/where/else

Bunu genel olarak yapmanın güzel bir yolu:

  • Virtualenv oluştur
  • Virtualenv'i etkinleştir
  • Varolan kütüphaneleri virtualenv'inize "geri dönüştürmek" istiyorsanız, mevcut kurulumunuzdan yumuşak bağlantı kurun, yani ln -s $HOME/.local/lib/python3.6/site-packages/numpy $PWD/venv/lib/python3.6/site-packages/
  • Yap export PYTHONPATH=,export HOME=/some/other/dir

Şimdi özel olarak yalıtılmış sanal ağınız olmalıdır.


0

Bağlam: Archlinux

Eylem:
python2-pip kurun:
sudo pacman -S python2-pip

Artık pip2.7'niz var:
sudo pip2.7 install boto

Test (benim durumumda 'boto' gerekli):
Aşağıdaki komutları çalıştırın:

python2
import boto

Başarı: Hata yok.

Çıkış: Ctrl+D



0

Örneğin C: \ Python2.7 \ Scripts dosyasına gidebilir ve cmd'yi bu yoldan çalıştırabilirsiniz. Bundan sonra pip2.7 paketinizi çalıştırabilirsiniz ...

Bu Python'un bu sürümü için paket yükleyecektir.


0

Bu muhtemelen yapmak için tamamen yanlış bir şey (ben bir python noob), ama ben sadece girip pip dosyasını düzenledi

#!/usr/bin/env python3 <-- I changed this line.

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

0

Windows için özellikle: \ path \ to \ python.exe -m pip install PackageName çalışır.


0

Blender için:

/usr/bin $ python3.7 -m pip install irc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.