После установки Mechanize я не могу импортировать его.
Я пробовал установить из pip, easy_install и через python setup.py install
это репо: https://github.com/abielr/mechanize . Все это безрезультатно, поскольку каждый раз, когда я вхожу в свой интерактивный Python, я получаю:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mechanize
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mechanize
>>>
Установки, которые я запускал ранее, сообщили, что они завершились успешно, поэтому я ожидаю, что импорт будет работать. Что могло вызвать эту ошибку?
easy_install
? Кроме того , пожалуйста , проверьте полный путьeasy_install
,pip
и изpython
.sys.path
, ищете ли вы в нужных местах,ls -laR /usr/local/lib/python2.7/dist-packages/mech*
проверить наличие проблем с разрешениями и посмотреть,imp.find_module("mechanize")
чтобы различать ошибки «не могу найти» и «не удается выжить-импортировать-это»?Ответы:
В моем случае это проблема с разрешением. Пакет каким-то образом был установлен только с правами root rw, другой пользователь просто не может к нему rw!
источник
sudo pip install ...
. Простое исправление:sudo chmod -R ugo+rX /lib/python2.7/site-packages/
sudo chmod 777 /usr/local/lib/python3.6/site-packages
что трюк сделалУ меня была та же проблема: скрипт с
import colorama
бросал и ImportError, ноsudo pip install colorama
говорил мне, что «пакет уже установлен».Моя ошибка : запустить пип без Судо :
pip install colorama
. Затем pip согласился, что его нужно установить, установил его, и мой скрипт запустился.Моя среда - 32-разрядная версия Ubuntu 14.04; Думаю, я видел это до и после того, как активировал свой virtualenv.
ОБНОВЛЕНИЕ : еще лучше используйте
python -m pip install <package>
. Преимущество этого заключается в том, что, поскольку вы выполняете конкретную версию python, в которой хотите получить пакет, pip однозначно установит пакет на «правильный» python. Опять же, не используйте sudo в этом случае ... тогда вы получите пакет в нужном месте, но, возможно, с (нежелательными) правами root.источник
Это проблема пути Python.
В моем случае у меня установлен python:
и в python2.6 нет каталога пакетов сайтов.
Пакет (SOAPpy), который я установил с помощью pip, находится
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
И site-package не находится в пути python, все, что я сделал, это навсегда добавил пакеты сайтов в PYTHONPATH.
В появившемся текстовом файле добавьте в конец эту строку:
экспорт PYTHONPATH = $ PYTHONPATH: /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
источник
Механизм импорта Python действительно работает, так что либо:
источник
sudo pip install
ее, она была установлена с привилегиями root, и во время импорта что-то бомбит из-за отсутствия чтение или запись.Я бился головой об этом по монитору до тех пор, пока молодой практикант не сказал мне, что секрет заключается в "установке python setup.py" внутри каталога модуля.
По какой-то причине запуск установки оттуда просто работает.
Для ясности, если имя вашего модуля "foo":
[burnc7 (2016-06-21 15:28:49) git]# ls -l total 1 drwxr-xr-x 7 root root 118 Jun 21 15:22 foo [burnc7 (2016-06-21 15:28:51) git]# cd foo [burnc7 (2016-06-21 15:28:53) foo]# ls -l total 2 drwxr-xr-x 2 root root 93 Jun 21 15:23 foo -rw-r--r-- 1 root root 416 May 31 12:26 setup.py [burnc7 (2016-06-21 15:28:54) foo]# python setup.py install <--snip-->
Если вы попытаетесь запустить setup.py из любого другого каталога, указав его путь, вы получите неудачную установку.
НЕ РАБОТАЕТ:
РАБОТАЕТ:
источник
Мне удалось исправить эту проблему с помощью комбинированного подхода. Сначала я последовал совету Криса, открыл командную строку и набрал «pip show packagename». Это обеспечило местоположение установленного пакета.
Затем я открыл python и набрал import sys, затем sys.path, чтобы показать, где мой python ищет любые импортируемые мной пакеты. Увы, локации, показанной на первом шаге, НЕ было в списке.
На последнем этапе я набрал sys.path.append ('package_location_seen_in_step_1'). При желании вы можете повторить шаг два, чтобы увидеть, что местоположение теперь находится в списке.
Тестовый шаг, попробуйте снова импортировать пакет ... он работает.
Обратная сторона? Это временно, и вам нужно каждый раз добавлять его в список.
источник
Я столкнулся с этим при попытке использовать связку ключей, которую я установил через
sudo pip install keyring
. Как упоминалось в других ответах, в моем случае это проблема с разрешениями.Что сработало для меня:
sudo pip uninstall keyring
-H
вариант sudo и переустановил связку ключей:sudo -H pip install keyring
Надеюсь это поможет.
источник
Я новичок в питоне. Я исправил эту проблему, изменив путь интерпретатора проекта.
File -> Settings -> Project -> Project Interpreter
источник
Я не мог заставить мой PYTHONPATH работать должным образом. Я понял, что добавление
export
устранило проблему:(действительно работал)
vs.
(не работает)
источник
В моем случае я запустил,
pip install Django==1.11
и он не будет импортировать изpython
интерпретатора.Просматривая команды pip, я обнаружил,
pip show
что они выглядели так:> pip show Django Name: Django Version: 1.11 ... Location: /usr/lib/python3.4/site-packages ...
Обратите внимание, что на месте написано «3.4». Я обнаружил, что
python
-команда связана сpython2.7
/usr/bin> ls -l python lrwxrwxrwx 1 root root 9 Mar 14 15:48 python -> python2.7
Прямо рядом с этим я нашел ссылку под названием
python3
и использовал ее. Вы также можете изменить ссылку наpython3.4
. Это тоже исправит.источник
В моем случае это была проблема с отсутствующим файлом init .py в модуле, который я хотел импортировать в среду Python 2.7.
Python 3.3+ имеет пакеты неявного пространства имен, которые позволяют создавать пакеты без файла инициализации .py.
источник
Если другие упомянутые ответы не работают для вас, попробуйте удалить кеш pip и переустановить пакет. Моя машина работает под управлением Ubuntu14.04, и она находилась под
~/.cache/pip
. Удаление этой папки помогло мне.источник
Что-то, что сработало для меня, было:
Команда не требует sudo. Это было протестировано на OSX Mojave.
источник
Также убедитесь, что вы не перепутали
pip3
сpip
. Я обнаружил, что установленный пакетpip
не работает,python3
и наоборот.источник
Когда вы устанавливаете через
easy_install
илиpip
, она успешно завершается? Что такое полный выход? Какую установку Python вы используете? Вам может потребоваться использоватьsudo
перед командой установки, если вы устанавливаете модули в системный каталог (возможно, если вы используете системную установку Python). В вашем вопросе не так много полезной информации, но некоторые инструменты, которые, вероятно, помогут, включают:echo $PYTHONPATH
и / илиecho $PATH
: при импорте модулей Python ищет в одной из этих переменных среды (списки каталогов с:
разделителями) нужный модуль. Проблемы с импортом часто возникают из-за отсутствия нужного каталога в этих списках.which python
,,which pip
илиwhich easy_install
: они сообщат вам расположение каждого исполняемого файла. Это может помочь узнать.Используйте virtualenv , как предлагает @JesseBriggs. Он очень хорошо работает,
pip
чтобы помочь вам изолировать и управлять модулями и средой для отдельных проектов Python.источник
У меня была именно такая проблема, но ни один из приведенных выше ответов не помог. Это сводило меня с ума, пока я не заметил, что sys.path изменился после импорта из родительского проекта. Оказалось, что я использовал importlib, чтобы написать небольшую функцию для импорта файла, не входящего в иерархию проекта. Плохая идея: я забыл, что сделал это. Хуже того, процесс импорта испортил sys.path - и оставил его таким. Очень плохая идея.
Решением было остановить это и просто поместить файл, который мне нужно было импортировать, в проект. Другой подход заключался бы в том, чтобы поместить файл в отдельный проект, так как он должен время от времени перестраиваться, и перестройка может совпадать, а может и не совпадать с перестройкой основного проекта.
источник
У меня была эта проблема с 2.7 и 3.5, установленными в моей системе, когда я пытался протестировать бот телеграммы с Python-Telegram-Bot .
Я не мог заставить его работать после установки с помощью pip и pip3, с sudo или без. У меня всегда было:
Traceback (most recent call last): File "telegram.py", line 2, in <module> from telegram.ext import Updater File "$USER/telegram.py", line 2, in <module> from telegram.ext import Updater ImportError: No module named 'telegram.ext'; 'telegram' is not a package
Правильное чтение сообщения об ошибке говорит мне, что python ищет в текущем каталоге файл
telegram.py
. И правильно, у меня там лежал скрипт под названием telegram.py, и он был загружен python, когда я позвонилimport
.Заключение:
package.py
при попытке импорта убедитесь, что в вашем текущем рабочем каталоге их нет. (И внимательно прочтите сообщение об ошибке).источник
У меня была аналогичная проблема (в Windows), и основной причиной в моем случае было ПО АНТИВИРУСА ! Он имеет функцию «Автоконтроль», которая оборачивает запущенный процесс какой-то виртуальной машиной. Симптомы:
pip install somemodule
отлично работает в одном окне cmd-строки иimport somemodule
не работает при выполнении из другого процесса с ошибкойModuleNotFoundError: No module named 'somemodule'
Надеюсь, это кому-нибудь сэкономит время :)
источник
У меня была аналогичная проблема с использованием Django. В моем случае я мог импортировать модуль из оболочки Django, но не из файла .py, который импортировал модуль.
Проблема заключалась в том, что я запускал сервер Django (следовательно, выполнял .py) из другого виртуального сервера, из которого был установлен модуль.
Вместо этого экземпляр оболочки запускался в правильном virtualenv. Следовательно, почему это сработало.
источник
Большинство возможных случаев уже были рассмотрены в решениях, просто поделившись моим случаем, со мной случилось, что я установил пакет в одной среде (например,
X
), и я импортировал пакет в другую среду (напримерY
). Поэтому всегда убедитесь, что вы импортируете пакет из среды, в которой вы его установили.источник
В моем случае мне также пришлось установить модуль (-ы) для суперпользователя.
Очевидно, суперпользователь не может получить доступ к файлам обычных пользователей при определенных обстоятельствах.
источник
Для меня это было обеспечение того, чтобы версия модуля была согласована с версией Python, которую я использовал. Я создал образ на коробке с Python 3.6, а затем вставил его в образ Docker, на котором была установлена версия 3.7 , и затем ударил головой когда Python говорил мне, что модуль не установлен ...
36m
для Python 3.6bsonnumpy.cpython-36m-x86_64-linux-gnu.so
37m
для Python 3.7bsonnumpy.cpython-37m-x86_64-linux-gnu.so
источник
pip install
версия, соответствующая используемой вами версии Python. Какую ошибку вы получаете, и какой результатpython --version
Я знаю, что это очень старый пост, но для меня у меня была проблема с установленным 32-битным питоном и 64-битным питоном. Как только я удалил 32-битный питон, все заработало, как должно.
источник
Я решил свою проблему: одни и те же библиотеки работали нормально в одном проекте (A), но импорт тех же библиотек в другой проект (B) вызвал ошибку. Я использую Pycharm в качестве IDE в ОС Windows. Итак, попробовав множество возможных решений и не сумев решить проблему, я сделал следующие две вещи (удалил папку Venv и перенастроил интерпретатор):
1-В проекте (B) была папка с именем ("venv"), расположенная во внешних библиотеках /. Я удалил эту папку.
2-шаг 1 (удаление папки «venv») вызывает ошибку в конфигурации интерпретатора Python, и в верхней части экрана отображается сообщение «Недопустимый интерпретатор Python, выбранный для проекта» и «Настроить интерпретатор Python», выберите эту ссылку, и она открывает новое окно. В раскрывающемся списке «Project Interpreter» есть красная линия, показывающая предыдущий недопустимый интерпретатор. Теперь откройте этот список и выберите Python Interpreter (в моем случае это Python 3.7). Нажмите «Применить» и «ОК» внизу, и все готово.
Примечание. Возможно, проблема заключалась в том, что виртуальная среда моего проекта (B) не распознавала уже установленные и рабочие библиотеки.
источник
Если вы используете виртуальную среду, используйте
pipenv install <module name>
вместоpip install <module name>
Работал у меня.
источник
Была и эта проблема ... пакет был установлен на Python 3.8.0, но VS Code запускал мой скрипт с использованием более старой версии (3.4)
исправить в терминале:
py .py
Убедитесь, что вы устанавливаете пакет в правильную версию Python.
источник
Как мой друг сделал для меня сегодня, вот что мне помогло (я использую Windows):
Нажмите «Настройка» -> «Проект» -> «Интерпретатор проекта». Здесь, в окне справа, слева есть строка с заголовком «Project Interpreter». Щелкните эту строку, и откроется несколько дополнительных строк.
Теперь нажмите строку «Показать все». Откроется окно. В этом окне нажмите маленький значок «+» в правом верхнем углу.
Откроется новое окно. Слева есть 4 вкладки, нажмите самую верхнюю, на которой написано «Virtualenv Environment». Теперь в окне справа отметьте опцию «Существующая среда». Строка «Переводчик» станет хорошо видна. Нажмите кнопку "..." справа от строки.
Теперь откроется окно просмотра. Перейдите в каталог, в который вы установили сам Python. . Не тот, что с PyCharm. Когда вы попадете туда, выберите файл «python.exe» и нажмите ОК (окно исчезнет).
Снова нажмите ОК (это окно тоже исчезнет).
Теперь в этом окне убедитесь, что созданная вами новая строка отмечена, и снова нажмите OK.
Теперь все установленные пакеты должны быть видны в интерпретаторе проекта и прочитаны вашей программой.
источник
Самое простое решение, которое сработало для меня, о котором я не упоминал в этой теме:
У меня установлено несколько версий Python, но я пытался использовать Python3.7, поэтому мне пришлось использовать:
sudo pip3.7 install <package>
источник
Может быть, немного не по теме, но у меня были проблемы
import PyYAML
. Указывает на то, что вам нужноimport yaml
. (думаю, это классический rtfm ...)источник
Это работает!!!
Это часто происходит, когда модуль устанавливается в более старую версию python или другой каталог, не беспокойтесь, решение простое. - импортировать модуль из каталога, в котором установлен модуль. Вы можете сделать это, сначала импортировав
sys
модуль python, а затем импортировав из пути, по которому модуль установлен.import sys sys.path.append("directory in which module is installed") import <module_name>
источник