“python3” и “Python” используют различные переменные пути?

Команда python открывает Python 2.7.6 сред. Если я хочу интерпретировать сценарий Python 3, я должен переписать команду к python3.

Я только что установил numpy пакет. Для тестирования успешной установки я выполняю команду import numpy. Это работает хорошо при использовании python команда. Однако python3 не находит пакет.

Как это возможно? Эти две команды используют различные переменные пути? Как я могу изменить поведение?

8
задан 18 March 2016 в 13:00

3 ответа

Вы абсолютно правы, они используют отличающийся 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']

можно также установить python3-pip и затем работать pip3 install whatever для установки пакетов для Python 3 с Pip для пакетов, которые не доступны в Ubuntu как python3-whatever.

В случае, если Вы смущены различием между distutils, setuptools, easy_install, зернышко и остальными, зернышко использования. Это - прохладное. :)

8
ответ дан 23 November 2019 в 05:29

Нет, они используют тот же PATH. Однако этот проблема не с PATH.

Python 2 и Python 3 достаточно отличаются, что пакеты должны быть записаны отдельно для них обоих. Вы не можете использовать пакет, записанный для одного с другим.

В Ubuntu, эти модули хранятся в различных местоположениях и упаковываются отдельно - python-numpy для Python 2, python3-numpy для Python 3. Если Вы хотите numpy с Python 3, устанавливаете 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
ответ дан 23 November 2019 в 05:29

Действительно, оба импортируют модули из различных местоположений:

  • 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
ответ дан 23 November 2019 в 05:29

Другие вопросы по тегам:

Похожие вопросы: