PythonAnywhere: механизм импорта выдает ImportError, но pip выдает Уже удовлетворено

Прошу прощения за вопрос новичка по Python.

У меня есть скрипт, который

import mechanize

что дает ошибку:

File "/usr/local/lib/python3.5/dist-packages/mechanize/__init__.py", line 122, in <module> from _mechanize import \
ImportError: No module named '_mechanize'

Я бы подумал, что это означает, что модуль не установлен или не инициализирован, но когда я открываю BASH и набираю:

$ pip3.5 install mechanize

... это дает ошибку

Requirement already satisfied: mechanize in /usr/local/lib/python3.5/dist-packages

Я посмотрел здесь и здесь Последнее подходит близко, но я думаю, что использую правильную версию pip.

Извините за то, что я уверен, ужасная номенклатура новичка. Я подозреваю, что между chanize и _mechanize есть разница, но я не знаю, в чем она заключается.


person Suzanne    schedule 03.12.2016    source источник


Ответы (2)


Общее предложение: вы должны использовать virtual environments, так как это предотвращает проблемы в пакетах, содержа пакеты в каждом виртуальном окружении. Таким образом, гораздо проще поддерживать версии модулей Python.

На обычном ПК вы можете решить свою проблему следующим образом (но это не будет работать на PythonAnywhere):

cd /usr/local/lib/python3.5/dist-packages/mechanize/
python setup.py install

затем повторите попытку импорта.

Если это не удается, попробуйте сделать следующее

pip uninstall mechanize
pip install mechanize
person Chinny84    schedule 04.12.2016
comment
Спасибо. Первые две рекомендации не сработали, но создание виртуальной среды и перемещение в нее всех модулей сработало отлично. Большое спасибо. - person Suzanne; 04.12.2016
comment
забавно то, что последнее утверждение было вбрасыванием в конце - повезло, что я упомянул об этом! - person Chinny84; 04.12.2016

Кстати, на PA вы должны использовать:

pip3.5 install --user --upgrade mechanize

дополнительная информация здесь: https://help.pythonanywhere.com/pages/InstallingNewModules

person jgmdavies    schedule 06.12.2016