web-dev-qa-db-ja.com

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

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

numpyパッケージをインストールしました。正常なインストールをテストするために、コマンドimport numpyを実行します。 pythonコマンドを使用するとうまく機能します。ただし、python3はパッケージを見つけられません。

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

8
null

あなたは絶対に正しいです、彼らは異なる PYTHONPATH sを使用します。

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']

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

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

8
Stefano Palazzo

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

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

Ubuntuでは、これらのモジュールは異なる場所に保存され、個別にパッケージ化されます- python-numpy for Python 2、 python3-numpy for Python 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']
4
muru

実際、両方とも異なる場所からモジュールをインポートしています:

  • 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
3
Sylvain Pineau