web-dev-qa-db-ja.com

複数のPythonバージョンとPIPを扱っていますか?

pipを複数のバージョンのPythonでうまく動作させる方法はありますか?たとえば、私のサイト2.5インストールまたは私のサイト2.6インストールに明示的にインストールするには、pipを使用します。

たとえば、easy_installでは、easy_install-2.{5,6}を使用します。

そして、はい - 私はvirtualenvについて知っています、そしていいえ - それはこの特定の問題に対する解決策ではありません。

394
David Wolever

現在の推奨python -m pipを使用することです。ここでpythonは使用したいPythonのバージョンです。これは、Pythonのすべてのバージョンで、そしてあらゆる形式のvirtualenvで機能するので、これが推奨です。例えば:

# 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

前の答えは、後世に残されています。

バージョン0.8以降、Pipはpip-{version}をサポートしています。 easy_install-{version}と同じように使えます。

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

_ edit _ :pipは、バージョン1.5のpip-VERSIONの代わりにpipVERSIONを使用するようにスキーマを変更しました。 pip >= 1.5がある場合は、以下を使用してください。

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

詳しくは https://github.com/pypa/pip/pull/1053 をご覧ください。


参考文献:

471
Hugo Tavares

Windowsでは、Pythonのバージョンを記述することでpipモジュールを実行できます(ランチャーがあなたのパス上にあることを確認する必要があります)。

py -3.4 -m pip install pyfora

py -2.7 -m pip install pyfora

あるいは、このように直接目的のpython実行可能ファイルを呼び出すことができます。

/path/to/python.exe -m pip install pyfora

81
mon

/path/to/python2.{5,6} /path/to/pip install PackageNameは動作しませんか?

Pipがまだインストールされていないpythonバージョンでこれを機能させるには、pipをダウンロードしてpython*version* setup.py installを実行する必要があります。例えばpython3.3 setup.py installです。これにより、コメント内のインポートエラーが解決されます。 (@hbdgafが示唆しているように)

75
bwinton

私はデフォルトでPython 2.6をインストールしました(Amazon EC2 AMI)が、私のアプリケーションにはpython2.7といくつかの外部パッケージが必要でした。あなたがすでにpython2.7をデフォルトのpython(私の場合は2.6)と一緒にインストールしていると仮定します。以下は、デフォルト以外のpython2.7用のpipとパッケージをインストールする方法です。

あなたのPythonバージョンにpipをインストールします。

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

特定のpipバージョンを使ってパッケージをインストールします。

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

それは私のために窓の中でこのように働いた:

  1. 私はpythonファイルpython.pyとpythonw.exeの名前をpython3.pyとpythonw3.pyに変更しました。

  2. それから私はちょうどプロンプトでこのコマンドを実行しました:

    python3 -m pip install package

27
Angie Alejo

他の答えは、2.Xと3.Xの両方のPythonでpipを使用する方法を示していますが、 複数のPythonディストリビューションのケースを処理する方法を示していません(例:オリジナルのPythonとAnaconda Python)

私はオリジナルのPython 2.7とPython 3.5、そしてAnaconda Python 3.5という合計3つのPythonバージョンを持っています。

パッケージをインストールする方法は次のとおりです。

  1. オリジナル Python 3.5

    /usr/bin/python3 -m pip install python-daemon
    
  2. オリジナル Python 2.7

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

    python3 -m pip install python-daemon
    

    または

    pip3 install python-daemon
    

    Anacondaがユーザー環境でオリジナルのPythonバイナリをオーバーライドするので、より簡単です。

    もちろん、anacondaへのインストールはcondaコマンドで行われるべきです、これはほんの一例です。


また、pipがその特定のpython用にインストールされていることを確認してください。手動でpipをインストールする必要があるかもしれません。これはUbuntu 16.04で動作します。

Sudo apt-get install python-pip 

または

Sudo apt-get install python3-pip
22
quasoft

私は最近自分自身でこの問題に遭遇し、Python 2も持っている私のLinuxシステムではPython 3の正しいピップを得ていないことを知りました。

まず、あなたのPythonバージョンのpipがインストールされていることを確認しなければなりません。

Python 2の場合:

Sudo apt-get install python-pip

Python 3の場合:

Sudo apt-get install python3-pip

次に、あるバージョンのPythonまたは他のバージョンのPython用のパッケージをインストールするには、単純に次のようにしてPython 2を実行します。

pip install <package>

またはPython 3の場合:

pip3 install <package>
14
clyde

pipもpythonパッケージです。そのため、特定のPythonバージョンにモジュールをインストールする最も簡単な方法は以下のようになります。

 python2.7 /usr/bin/pip install foo

または

python2.7 -m pip install foo
11
Prakash Palnati

だからどうやらeasy_installpipの複数のバージョンがあります。それは大きな混乱のようです。とにかく、これは私がUbuntu 12.10にPython 2.7用のDjangoをインストールするためにしたことです:

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

Linux、Mac OS X、およびその他のPOSIXシステムでは、バージョン管理されたPythonコマンドを-mスイッチと組み合わせて使用​​して、適切なpipのコピーを実行します。

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

(適切にバージョン管理されたpipコマンドも利用可能かもしれません)

Windowsでは、py Pythonランチャーを-mスイッチと組み合わせて使用​​します。

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

py -3.4でエラーが発生した場合は、次を試してください。

pip install SomePackage
7

ここから: https://docs.python.org/3/installing/ /

以下は、同時にインストールされるさまざまなバージョンのパッケージをインストールする方法です。 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

Windows では、py Pythonランチャーを-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
6
jmunsch

ここでの答えのほとんどはこの問題に対処していますが、私はCentOS 7の/usr/localにpythonの代替インストールを作成することに関して私を絶えず混乱させていたものを加えたいですpip2.7 installとモジュールをインストールします。しかし、私が理解できなかったのは、なぜ私の新しくインストールされたバージョンのpythonが私が何をインストールしているのか見ていなかったからです。

CentOS 7では、/usr/binフォルダにすでにpython2.7とpip2.7があることがわかりました。新しいpythonディストリビューション用にpipをインストールするには、Sudoに/usr/local/binに移動するように明確に指示する必要があります。

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

これでpip2.7があなたのバージョンのpythonと一緒にあなたの/usr/local/binフォルダにインストールされるはずです。秘訣は、モジュールをインストールしたいときは、Sudoの$PATH変数に/usr/local/binを含めるように修正するか、実行する必要があるということです。

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

新しいモジュールをインストールしたい場合。 Sudoがすぐに/usr/local/binを見ていなかったことを覚えておくために私は永遠にかかりました。

2
JeffP

複数バージョンのPythonとそれぞれのパッケージのインストール。

同じWindowsマシン上のPythonバージョン:2.7、3.4、および3.6

Pythonの3つすべてのバージョンのインストール

  • 以下のパスでPython 2.7、3.4、および3.6をインストールしました

enter image description here

Pythonの3つすべてのバージョンのPATH

  • PATH変数(システム環境変数内)に、以下のパスが含まれていることを確認してください。 Python36 \スクリプト\;

バージョンの実行ファイル名を変更する

  • C:\ Python36とC:\ Python34のpython実行可能ファイル名をそれぞれpython36とpython34に変更しました。

enter image description here

すべてのバージョンでコマンドプロンプトを確認しました。

enter image description here

バージョンごとに別々にパッケージをインストールする

enter image description here

0
Bahubali Patil

これはおそらく完全に間違ったことです(私はpython noobです)が、pipファイルを編集して編集しただけです。

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

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

from pip._internal import main

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

たとえばC:\ Python2.7\Scriptsに移動して、そのパスからcmdを実行します。その後、pip2.7を実行してyourpackageをインストールできます。

そのバージョンのPython用のパッケージがインストールされます。

0
thug_

問題に対する私の見解を以下に示します。 Python3で動作します。主な機能は次のとおりです。

  • 各Pythonバージョンはソースからコンパイルされます
  • すべてのバージョンがローカルにインストールされます
  • システムのデフォルトのPythonインストールを壊しません
  • 各Pythonバージョンはvirtualenvで分離されます

手順は次のとおりです。

  1. いくつかの追加のpythonバージョンが他の方法でインストールされている場合は、それらを取り除きます。たとえば、remove$ HOME/.local/lib/python3.xなど(グローバルにインストールされているものも)。ただし、システムのデフォルトのpython3バージョンには触れないでください。

  2. 次のディレクトリ構造の下で、さまざまなpythonバージョンのソースをダウンロードします。

    $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. 各「Python-3.x.y /」ディレクトリで、次の操作を実行します(do NOTいずれかの手順で「Sudo」を使用してください!):

    mkdir root
    ./configure --prefix=$PWD/root 
    make -j 2
    make install
    virtualenv --no-site-packages -p root/bin/python3.x env
    
  4. 「python_versions /」で、次のようなファイルを作成します。

    env_python3x.bash:
    
    #!/bin/bash
    echo "type deactivate to exit"
    source $HOME/python_versions/Python-3.x.y/env/bin/activate
    
  5. さて、python3.xを選択したいときはいつでも

    source $HOME/python_versions/env_python3x.bash
    

    virtualenvに入る

  6. Virtualenvで、お気に入りのpythonパッケージをインストールします

    pip install --upgrade package_name
    
  7. Virtualenvおよびpythonバージョンを終了するには、「deactivate」と入力します

0
El Sampsa

特にWindowsの場合:\ path\to\python.exe -m pip install PackageName works。

0
Aaquila

例えば、あなたが他のバージョン(例えば3.5)をデフォルトとして設定し、そしてpython 2.7のためにpipをインストールしたいなら:

  1. でhttps://pypi.python.org/pypi/pip (tar)にダウンロード
  2. tarファイルを解凍する
  3. ファイルのディレクトリに移動します。
  4. Sudo python2.7 setup.pyインストール
0
salomeow

コンテキスト:Archlinux

アクション:
python2-pipをインストールします。
Sudo pacman -S python2-pip

今、pip2.7があります。
Sudo pip2.7 install boto

テストします(私の場合は「boto」が必要です)。
次のコマンドを実行してください。

python2
import boto

成功:エラーなし。

出口: Ctrl+D

0
Paul Parker