Модуль установки 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 в "обозревателе решений", выберите "Добавить виртуальную среду...", а затем выберите папку, в которой вы создали свою виртуальную среду. enter image description here Затем в настройках проекта на вкладке "Общие" выберите виртуальную среду в раскрывающемся списке.

enter image description here

Теперь визуальная студия должна использовать тот же переводчик, и все должно играть хорошо!

Ответ 6

Как вы установили easy_install/pip? убедитесь, что вы установили его для обновленной версии python. что могло бы произойти здесь, так это то, что старая (по умолчанию) установка python может быть связана с вашей установкой pip. вы можете попробовать запустить версию по умолчанию и импортировать недавно установленные модули.

Ответ 7

Для меня проблема заключалась в том, что у меня были странные настройки конфигурации в файле pydistutils.cfg

Попробуйте запустить rm ~/.pydistutils.cfg

Ответ 8

Если ваши двоичные файлы python и pip имеют разные версии, модули, установленные с помощью pip, не будут доступны для python.

Шаги для решения:

  1. Откройте новый терминал со средой по умолчанию и найдите двоичные файлы для 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 в моем случае.

  1. Замените символическую ссылку 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
  • Теперь установите пакет и проверьте