Модуль установки Python pip не найден. Как связать python с местом размещения?
Я новичок, и мне нужны были модули pySerial и feedparser для моих проектов. Я бегу горного льва.
Я следовал следующему руководству, чтобы перейти на python 2.7.3 и затем использовать вышеупомянутые модули.
http://hackercodex.com/guide/python-virtualenv-on-mac-osx-mountain-lion-10.8/
Я следовал этому руководству, пока не установил pip. Вместо установки Virtualenv. Я использовал следующие команды для установки pySerial и feedparser
$ pip install pySerial
Requirement already satisfied (use --upgrade to upgrade): pySerial in /Library/Python/2.7/site-packages
Cleaning up...
Я предположил, что это уже присутствовало, и проверил это. Python, кажется, импортирует это просто отлично. Моя версия на python была обновлена до 2.7.3 между прочим, так как я установил ее, используя homebrew, как упомянуто в руководстве.
Затем я попытался установить feedparser
$ pip install feedparser
Requirement already satisfied (use --upgrade to upgrade): feedparser in /usr/local/lib/python2.7/site-packages
Cleaning up...
Обратите внимание, как он находится в каталоге site-packages в каталоге usr/local/lib.
Все мои установки pip устанавливаются в этот каталог, но python, похоже, не подхватывает их, когда я пытаюсь импортировать их.
Как мне установить путь, чтобы Python также смотрел там, как и основной каталог?
Ваша помощь будет высоко оценена.
Я пытался искать ответы здесь:
Pip устанавливается, но модуль не найден
Почему я не могу импортировать Beautifulsoup на Mac с помощью Python 2.7 после его установки с помощью pip и/или easy_install?
но остальные из них находятся в той же ситуации, что и я. Я не понимаю, почему это происходит, когда я отредактировал свой bash_profile со следующим
# Set architecture flags
export ARCHFLAGS="-arch x86_64"
# Ensure user-installed binaries take precedence
export PATH=/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc
затем установил homebrew, а затем установил python 2.7.3 через homebrew (сейчас на моем компьютере работает 2.7.3)
Я полагал, что все установки pip будут правильно связаны?
Ответы
Ответ 1
В качестве быстрого обходного пути и при условии, что вы находитесь на терминале, похожем на bash (Linux/OSX), вы можете попробовать экспортировать переменную среды PYTHONPATH:
export PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"
Для Python 2.7
Ответ 2
Вот что я узнал после долгого времени появления проблем с pip, когда у меня было установлено несколько версий Python (действительно, особенно для пользователей OS X, которые, вероятно, используют brew для установки смесей python.)
Я предполагаю, что большинство разработчиков python имеют в начале своих скриптов:
#!/bin/env python
Вы можете быть удивлены, узнав, что это не обязательно тот же питон, что и тот, который вы запускаете из командной строки >python
Чтобы установить пакет, используя правильный экземпляр экземпляра для вашего интерпретатора python, вам нужно запустить что-то вроде:
>/bin/env python -m pip install --upgrade mymodule
Ответ 3
У меня также была эта проблема. Я заметил, что все подкаталоги и файлы в каталоге/usr/local/lib/python2.7/dist-packages/не имели права на чтение или запись для группы и других, и они принадлежали root. Это означает, что доступ к ним может получить только пользователь root, поэтому любой пользователь, пытавшийся запустить Python script, который использовал любой из этих модулей, получил ошибку импорта:
$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named selenium
>>>
Я предоставил разрешение на чтение для файлов и разрешение на поиск в подкаталогах для группы и т.д.:
$ sudo chmod -R go+rX /usr/local/lib/python2.7/dist-packages
И это разрешило проблему для меня:
$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
>>>
Я установил эти пакеты с помощью pip (запустил root с sudo). Я не уверен, почему он установил их, не предоставляя разрешения на чтение и поиск. Это похоже на ошибку в пике для меня или, возможно, в конфигурации пакета, но я не очень хорошо разбираюсь в Python и его модульной упаковке, поэтому я не знаю точно. FWIW, все пакеты в dist-пакетах имели эту проблему. Во всяком случае, надеюсь, что это поможет.
С уважением.
Ответ 4
Никакие другие решения не работали для меня, поэтому я попробовал:
pip uninstall <module> && pip install <module>
И это разрешило это для меня. Ваш пробег может отличаться.
Ответ 5
Ради любого, кто также использует Visual Studio из среды Windows:
Я понял, что вижу установленный модуль, когда запускаю pip install
py pip install [moduleName]
py pip list
Однако при отладке в visual studio получалось "модуль не найден". Как ни странно, я успешно запускал import [moduleName]
, когда запускал переводчик в powershell.
Причина:
Visual Studio использовала неправильный переводчик в:
C:\Users\[username]\AppData\Local\Programs\Python\Python37\
Я действительно хотел, чтобы visual studio использовала virtualenv, которую я настроил для своего проекта. Для этого щелкните правой кнопкой мыши Python Environments в "обозревателе решений", выберите "Добавить виртуальную среду...", а затем выберите папку, в которой вы создали свою виртуальную среду.
Затем в настройках проекта на вкладке "Общие" выберите виртуальную среду в раскрывающемся списке.
Теперь визуальная студия должна использовать тот же переводчик, и все должно играть хорошо!
Ответ 6
Как вы установили easy_install/pip? убедитесь, что вы установили его для обновленной версии python. что могло бы произойти здесь, так это то, что старая (по умолчанию) установка python может быть связана с вашей установкой pip. вы можете попробовать запустить версию по умолчанию и импортировать недавно установленные модули.
Ответ 7
Для меня проблема заключалась в том, что у меня были странные настройки конфигурации в файле pydistutils.cfg
Попробуйте запустить
rm ~/.pydistutils.cfg
Ответ 8
Если ваши двоичные файлы python
и pip
имеют разные версии, модули, установленные с помощью pip, не будут доступны для python.
Шаги для решения:
- Откройте новый терминал со средой по умолчанию и найдите двоичные файлы для
pip
и python
.
readlink $(which pip)
../Cellar/[email protected]/2.7.15_1/bin/pip
readlink $(which python)
/usr/local/bin/python3 <-- another symlink
readlink /usr/local/bin/python3
../Cellar/python/3.7.2/bin/python3
Здесь вы можете увидеть очевидное несоответствие между версиями 2.7.15_1
и 3.7.2
в моем случае.
- Замените символическую ссылку pip на двоичный файл pip, соответствующий вашей текущей версии python. Используйте версию Python в следующей команде.
ln -is /usr/local/Cellar/python/3.7.2/bin/pip3 $(which pip)
Флаг -i
предлагает перезаписать, если цель существует.
Это должно делать свое дело.
Ответ 9
Следующие шаги помогли мне исправить это.
- обновить версию пипа
- удалить созданную среду с помощью команды
rm -rf env-name
- создать среду с помощью команды
python3 -m venv env-aide
- Теперь установите пакет и проверьте