pip
を複数のバージョンのPythonでうまく動作させる方法はありますか?たとえば、私のサイト2.5インストールまたは私のサイト2.6インストールに明示的にインストールするには、pip
を使用します。
たとえば、easy_install
では、easy_install-2.{5,6}
を使用します。
そして、はい - 私はvirtualenvについて知っています、そしていいえ - それはこの特定の問題に対する解決策ではありません。
現在の推奨 は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 をご覧ください。
参考文献:
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
/path/to/python2.{5,6} /path/to/pip install PackageName
は動作しませんか?
Pipがまだインストールされていないpythonバージョンでこれを機能させるには、pipをダウンロードしてpython*version* setup.py install
を実行する必要があります。例えばpython3.3 setup.py install
です。これにより、コメント内のインポートエラーが解決されます。 (@hbdgafが示唆しているように)
私はデフォルトで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
それは私のために窓の中でこのように働いた:
私はpythonファイルpython.pyとpythonw.exeの名前をpython3.pyとpythonw3.pyに変更しました。
それから私はちょうどプロンプトでこのコマンドを実行しました:
python3 -m pip install package
他の答えは、2.Xと3.Xの両方のPythonでpipを使用する方法を示していますが、 複数のPythonディストリビューションのケースを処理する方法を示していません(例:オリジナルのPythonとAnaconda Python) 。
私はオリジナルのPython 2.7とPython 3.5、そしてAnaconda Python 3.5という合計3つのPythonバージョンを持っています。
パッケージをインストールする方法は次のとおりです。
オリジナル Python 3.5 :
/usr/bin/python3 -m pip install python-daemon
オリジナル Python 2.7 :
/usr/bin/python -m pip install python-daemon
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
私は最近自分自身でこの問題に遭遇し、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>
pipもpythonパッケージです。そのため、特定のPythonバージョンにモジュールをインストールする最も簡単な方法は以下のようになります。
python2.7 /usr/bin/pip install foo
または
python2.7 -m pip install foo
だからどうやらeasy_install
と pip
の複数のバージョンがあります。それは大きな混乱のようです。とにかく、これは私が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
>>>
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
ここから: 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
ここでの答えのほとんどはこの問題に対処していますが、私は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
を見ていなかったことを覚えておくために私は永遠にかかりました。
複数バージョンのPythonとそれぞれのパッケージのインストール。
同じWindowsマシン上のPythonバージョン:2.7、3.4、および3.6
Pythonの3つすべてのバージョンのインストール :
Pythonの3つすべてのバージョンのPATH :
バージョンの実行ファイル名を変更する :
すべてのバージョンでコマンドプロンプトを確認しました。
バージョンごとに別々にパッケージをインストールする
これはおそらく完全に間違ったことです(私は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())
たとえばC:\ Python2.7\Scriptsに移動して、そのパスからcmdを実行します。その後、pip2.7を実行してyourpackageをインストールできます。
そのバージョンのPython用のパッケージがインストールされます。
問題に対する私の見解を以下に示します。 Python3で動作します。主な機能は次のとおりです。
手順は次のとおりです。
いくつかの追加のpythonバージョンが他の方法でインストールされている場合は、それらを取り除きます。たとえば、remove$ HOME/.local/lib/python3.xなど(グローバルにインストールされているものも)。ただし、システムのデフォルトのpython3バージョンには触れないでください。
次のディレクトリ構造の下で、さまざまな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/
...
各「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
「python_versions /」で、次のようなファイルを作成します。
env_python3x.bash:
#!/bin/bash
echo "type deactivate to exit"
source $HOME/python_versions/Python-3.x.y/env/bin/activate
さて、python3.xを選択したいときはいつでも
source $HOME/python_versions/env_python3x.bash
virtualenvに入る
Virtualenvで、お気に入りのpythonパッケージをインストールします
pip install --upgrade package_name
Virtualenvおよびpythonバージョンを終了するには、「deactivate」と入力します
特にWindowsの場合:\ path\to\python.exe -m pip install PackageName works。
例えば、あなたが他のバージョン(例えば3.5)をデフォルトとして設定し、そしてpython 2.7のためにpipをインストールしたいなら:
コンテキスト:Archlinux
アクション:
python2-pipをインストールします。Sudo pacman -S python2-pip
今、pip2.7があります。Sudo pip2.7 install boto
テストします(私の場合は「boto」が必要です)。
次のコマンドを実行してください。
python2
import boto
成功:エラーなし。
出口: Ctrl+D