私はOS X El Captainと一緒にMacbookを持っています。 Python 2.7
はプレインストールされていると思います。しかし、私もPython 3.5
をインストールしました。 Python 3
を使い始めたときに、パッケージをインストールしたいのであれば、次のように入力します。
pip3 install some_package
とにかく、今使ってみると
pip install some_package
some_package
にPython 3
がインストールされます。インポートして問題なく使用できるということです。さらに、Terminal
にpip3
を入力すると、使用方法に関する次のメッセージが表示されます。
Usage:
pip <command> [options]
これは、pip
と入力したときに表示されるメッセージと同じです。
これは、以前のバージョンでは事情が異なり、pip
とpip3
を同じ意味で使用できるという意味ですか?もしそうなら、そして議論のために、どうすればPython 2
の代わりにPython 3
のパッケージをインストールすることができますか?
あなたのpip
はpip3
と同じ実行可能ファイルパスへのソフトリンクです。以下のコマンドを使用して、実際のpip
とpip3
の実際のパスがどこにあるかを確認できます。
$ ls -l `which pip`
$ ls -l `which pip3`
また、以下のコマンドを使って詳細を知ることもできます。
$ pip show pip
$ pip3 show pip
私たちが異なるバージョンのpythonをインストールしたとき、私たちはそのようなソフトリンクをするかもしれません
python
、python2
、python3
についても同じです。
別のケースでそれがどのように起こるかに興味がある人のために以下に:
あなたがpython 2.xを持っていてそれからpython3をインストールしたならば、あなたのpipはpip3を指しているでしょう。 pip --version
と同じであるpip3 --version
をタイプすることによってそれを確かめることができます。
あなたのシステムではpip、pip2 and pipとなっています。
必要に応じて、pipをpip3ではなくpip2を指すように変更できます。
python3
をインストールすると、pip3
がインストールされます。そして、(python2.7のような)他にpythonをインストールしていなければ、pip
をpip3
に指すリンクが作成されます。
つまり、(python3以外の)他のバージョンのpythonがインストールされていない場合、pip
はpip3
へのリンクですです。 pip
は通常、最初のインストールを指します。
これは難しい話題です。結局、pip
を呼び出すと、システムの設定方法に応じてpip2
またはpip3
が呼び出されます。
pip
、pip2
、およびpip3
は、同じ実行可能ファイルパスへのソフトリンクではないと思います。このコマンドに注意して、私のLinux端末に帰着してください:
mrz@mrz-pc ~ $ ls -l `which pip`
-rwxr-xr-x 1 root root 292 Nov 10 2016 /usr/bin/pip
mrz@mrz-pc ~ $ ls -l `which pip2`
-rwxr-xr-x 1 root root 283 Nov 10 2016 /usr/bin/pip2
mrz@mrz-pc ~ $ ls -l `which pip3`
-rwxr-xr-x 1 root root 293 Nov 10 2016 /usr/bin/pip3
mrz@mrz-pc ~ $ pip -V
pip 9.0.1 from /home/mrz/.local/lib/python2.7/site-packages (python 2.7)
mrz@mrz-pc ~ $ pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
mrz@mrz-pc ~ $ pip3 -V
pip 9.0.1 from /home/mrz/.local/lib/python3.5/site-packages (python 3.5)
ご覧のとおり、それらは異なるパスに存在します。
pip2はPython 2と同じように、pip 3は常にPython 3環境でのみ動作します。 pipは、状況に応じて適切な環境で動作します。例えば、あなたがPython 3 venvにいるなら、pipはPython 3環境で動作します。
Python 2.7をインストールしたのであれば、pip2
とpip2.7
を使ってPython 2専用のパッケージをインストールすることができると思います。
pip2 install some_pacakge
または
pip2.7 install some_package
また、Python 3専用のパッケージをインストールするには、pip3
またはpip3.5
を使用できます。
イラストで
pip --version
pip 19.0.3 from /usr/lib/python3.7/site-packages/pip (python 3.7)
pip3 --version
pip 19.0.3 from /usr/lib/python3.7/site-packages/pip (python 3.7)
python --version
Python 3.7.3
which python
/usr/bin/python
ls -l '/usr/bin/python'
lrwxrwxrwx 1 root root 7 Mar 26 14:43 /usr/bin/python -> python3
which python3
/usr/bin/python3
ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 9 Mar 26 14:43 /usr/bin/python3 -> python3.7
ls -l /usr/bin/python3.7
-rwxr-xr-x 2 root root 14120 Mar 26 14:43 /usr/bin/python3.7
したがって、私のデフォルトシステムのpython(Python 3.7.3)では、pip
ispip3
です。
somepath/venvでアクティブ化されたPython 3.6 virtualenvが与えられた場合、以下のエイリアスは、macOS Sierraのさまざまな問題を解決しました。
alias pip='python somepath/venv/lib/python3.6/site-packages/pip/__main__.py'
Rootユーザーがエイリアスまたはvirtualenvについて何も知らないため、Sudo pip
を実行する必要がある場合、これはあまりうまくいきませんでした。したがって、これを処理するために追加のエイリアスを追加する必要がありました。それはハックですが、動作します、そして私はそれが何をするか知っています:
alias sudopip='Sudo somepath/venv/bin/python somepath/venv/lib/python3.6/site-packages/pip/__main__.py'
開始するためにpip3が存在しませんでした(command not found)withおよびwhich pip
は/ opt/local/Library/Frameworksを返します/Python.framework/Versions/2.7/bin/pip、Apple Python。
Python 3.6はmacports経由でインストールされました。
使用したい3.6 virtualenvのアクティベーション後、which python
はsomepath/venv/bin/pythonを返します
どういうわけかpip install
は正しいことをして私のvirtualenvにヒットしますが、pip list
はPython 2.7パッケージをガタガタ鳴らせます。
Pythonの場合、これは初心者の使いやすさの点で私の期待を下回っています。
私のWindowsインスタンスでは - そして私は自分の環境を完全には理解していない - kaggle-cliパッケージをインストールするためにpip3を使用することはうまくいったが - pipはしなかった。私はコンダ環境で働いていました、そして、環境は異なっているようです。
(fastai)C:\ Users\redact\Downloads\fast.ai\deeplearning1\nbs> pip --version
c:\ ProgramData\Anaconda3\envs\fastai\lib\site-packagesからの9.0.1ピップ(python 3.6)
(fastai)C:\ Users\redact\Downloads\fast.ai\deeplearning1\nbs> pip3 --version
c:\ users\redact\appdata\local\programs\python\python36\lib\site-packagesからpython 9.0.1(python 3.6)