「python3」と「python」は異なるパス変数を使用しますか?


9

このコマンドpythonは、Python 2.7.6環境を開きます。Python 3スクリプトを解釈したい場合は、コマンドをに書き換える必要がありpython3ます。

numpyパッケージをインストールしました。インストールの成功をテストするために、コマンドを実行しますimport numpypythonコマンドを使用するとうまく機能します。ただし、python3パッケージが見つかりません。

これはどのようにして可能ですか?これらの2つのコマンドは異なるパス変数を使用していますか?動作を変更するにはどうすればよいですか?


関連/役に立つかもしれません:stackoverflow.com/a/53767029/52074
Trevor Boyd Smith、

回答:


9

あなたは完全に正しい、彼らは異なるを使用しますPYTHONPATH

Python 2.xとPython 3.xは、まったく異なるプログラミング環境と考えることができます。はい、パッケージを別の場所に保存します。

numpyを機能させるには、次のように入力します。

sudo apt-get install python3-numpy

パッケージが正確にどこに保存されているかを知りたい場合は、モジュールオブジェクト__path__属性を確認できます。

>>> import numpy
>>> numpy.__path__
['/usr/local/lib/python3.5/site-packages/numpy']

Ubuntuでとして入手できないパッケージについては、インストールpython3-pipしてから実行pip3 install whateverし、Pipを使用してPython 3のパッケージをインストールすることもできますpython3-whatever

distutils、setuptools、easy_install、pipとその他​​の違いについて混乱している場合は、pipを使用してください。それはクールなものです。:)


2
それらは異なるPYTHONPATHを使用しませんが、python2は$ PREFIX / lib / python2 *のパッケージのみを使用し、python3は$ PREFIX / lib / python3 *のパッケージのみを使用します。
dalloliogm 2016

4

いいえ、同じものを使用していますPATH。ただし、この問題はにはありませんPATH

Python 2とPython 3は十分に異なるため、パッケージは両方に対して個別に作成する必要があります。一方用に作成されたパッケージを他方で使用することはできません。

Ubuntuのでは、これらのモジュールは、異なる場所に格納されており、別々に梱包されている- python-numpyPythonの2のために、python3-numpyPythonの3のためにあなたは、Python 3でnumpyのをしたい場合は、インストールしますpython3-numpy

$ python3 -c 'import sys; print (sys.path)'
['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/home/muru/.local/lib/python3.4/site-packages', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
$ python2 -c 'import sys; print (sys.path)'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']

3

実際、どちらも異なる場所からモジュールをインポートしています。

  • Python2.7: /usr/lib/python2.7/dist-packages/numpy/
  • Python3.x: /usr/lib/python3/dist-packages/numpy/

numpy両方のインタープリターでインポートできるようにするには、対応するパッケージをインストールしてください。

  • Python2.7: sudo apt-get install python-numpy
  • Python3.x: sudo apt-get install python3-numpy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.