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