Проблемы с импортом модуля в Python 2.7

На моем компьютере Mac установлены Python 3.6 и Python 2.7, и я успешно установил базовые модули, такие как numpy, scipy и matplotlib, например, выполнив обычную установку pip и установку pip3. Мой Python 3.6 полностью работает в Anaconda-Jupiter-Notebook, IDLE и Terminal, а Python 2.7 работает только в терминале, но не в IDLE.

Проблемы с импортом модуля в Python 2.7

Проблемы с импортом модуля в Python 2.7

Затем для проверки версии я попробовал

pip --version

Возвращение: pip 10.0.1 из /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip (python 2.7)

pip3 --version

Возвращение: pip 10.0.1 из /Users/son520804/anaconda3/lib/python3.6/site-packages/pip (python 3.6)

Потом,

which python2

Возвращение: /Library/Frameworks/Python.framework/Versions/2.7/bin/python2

which pip2

Возвращение: /Library/Frameworks/Python.framework/Versions/2.7/bin/pip2

Как я могу решить эту проблему и включить Python 2.7 в режиме ожидания для импорта модулей? Большое спасибо за вашу помощь.

Попробуйте установить пакеты с помощью setup.py. Вот как это сделать: stackoverflow.com/questions/1471994/what-is-setup-py

Peppa 20.11.2018 02:24
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
725
2

Ответы 2

find / -iname '*numpy*'

Это операция терминала, а не команда python, вы можете попробовать запустить ее в терминале, чтобы увидеть, где он хранит numpy, но вы, вероятно, получите версию python3.

Пытаться:

pip2 uninstall numpy

Потом:

pip2 install numpy

Это может быть связано с тем, что ваша машина видит python3 как ваш "питон" по умолчанию, поэтому pip может снова установить его на python3. Обозначая pip2, он должен быть связан с python2 (на самом деле может потребоваться «pip2.7»). Надеюсь, поможет!

кроме перезагрузки компьютера, использования sudo pip install numpy или перезапуска IDLE, я не уверен. Обязательно удалите модули и переустановите их, если что-то пойдет не так.

Rrr 05.06.2018 06:26

Оказалось, что это странная проблема ... Теперь я частично решил, что если я сначала открою Python 2.7 IDLE, а затем открою файл и запущу, теперь все в порядке .. Но если я нажму открыть для этого файла , возникает та же ошибка импорта. (Какого черта?)

son520804 05.06.2018 06:35

Вероятно, это как-то связано с конфликтующими путями от anaconda / python2 / python3. Вероятно, вам следует использовать виртуальные среды или использовать pyenv отсюда: github.com/pyenv/pyenv

Rrr 05.06.2018 06:39

Возможно, ваш pip - это псевдоним pip3. Узнайте это с помощью pip --version и, если да, установите пакеты для python 2.7 как pip2.7 install matplotlib

Я также попробовал это и вернул требование, уже удовлетворенное, но мне все еще не удалось импортировать модуль в IDLE. Что-то пошло не так, чего я не знаю.

son520804 05.06.2018 06:08

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