Команда python
открывает Python 2.7.6 сред. Если я хочу интерпретировать сценарий Python 3, я должен переписать команду к python3
.
Я только что установил numpy пакет. Для тестирования успешной установки я выполняю команду import numpy
. Это работает хорошо при использовании python
команда. Однако python3
не находит пакет.
Как это возможно? Эти две команды используют различные переменные пути? Как я могу изменить поведение?
Вы абсолютно правы, они используют отличающийся 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, зернышко и остальными, зернышко использования. Это - прохладное. :)
Нет, они используют тот же 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']
Действительно, оба импортируют модули из различных местоположений:
/usr/lib/python2.7/dist-packages/numpy/
/usr/lib/python3/dist-packages/numpy/
, Чтобы смочь импортировать numpy
с обоими интерпретаторами, убедиться установить их соответствующие пакеты:
sudo apt-get install python-numpy
sudo apt-get install python3-numpy