Модуль установки 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 будут правильно связаны?

15 ответов

Решение

В качестве быстрого обходного пути и при условии, что вы находитесь на терминале, похожем на bash (Linux/OSX), вы можете попробовать экспортировать переменную среды PYTHONPATH:

export PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"

Для Python 2.7

Вот то, что я узнал после долгого времени, когда у меня были проблемы с pip, когда у меня было установлено несколько версий Python (особенно для пользователей OS X, которые, вероятно, используют brew для установки смесей python).

Я предполагаю, что большинство разработчиков Python имеют в начале своих сценариев:

#!/bin/env python

Вы можете быть удивлены, обнаружив, что это не обязательно тот же питон, что и тот, который вы запускаете из командной строки >python

Чтобы убедиться, что вы устанавливаете пакет, используя правильный экземпляр pip для вашего интерпретатора Python, вам нужно запустить что-то вроде:

>/bin/env python -m pip install --upgrade mymodule

Другие решения для меня не работали, поэтому я попытался:

pip uninstall <module> && pip install <module>

И это решило это для меня. Ваш пробег может отличаться.

У меня тоже была эта проблема. Я заметил, что все подкаталоги и файлы в /usr/local/lib/python2.7/dist-packages/ не имеют разрешения на чтение или запись для группы и других объектов, и они принадлежат пользователю root. Это означает, что только пользователь root может получить к ним доступ, и поэтому любой пользователь, который попытался запустить скрипт Python, который использовал любой из этих модулей, получил ошибку импорта:

$ 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). Я не уверен, почему он установил их без предоставления разрешения на чтение / поиск. Мне это кажется ошибкой в ​​pip или, возможно, в конфигурации пакета, но я не очень хорошо знаком с Python и его упаковкой модулей, поэтому точно не знаю. FWIW, все пакеты в dist-packages имели эту проблему. Во всяком случае, надеюсь, что это помогает.

С уважением.

Ради всех, кто также использует Visual Studio из среды Windows:

Я понял, что могу видеть, что мой модуль установлен, когда я запустил pip install

py pip install [moduleName] 
py pip list

Однако при отладке в визуальной студии "модуль не найден". Как ни странно, я успешно бегалimport [moduleName] когда я запускал интерпретатор в PowerShell.

Причина:

Visual Studio использовала неправильный интерпретатор: C:\Users\[username]\AppData\Local\Programs\Python\Python37\

Я ДЕЙСТВИТЕЛЬНО хотел, чтобы визуальная студия использовала virtualenv, который я установил для своего проекта. Для этого щелкните правой кнопкой мыши Среды Python в "обозревателе решений", выберите "Добавить виртуальную среду...", а затем выберите папку, в которой вы создали виртуальную среду. Затем в настройках проекта на вкладке Общие выберите свою виртуальную среду в раскрывающемся списке.

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

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

Шаги по разрешению:

  1. Откройте новый терминал со средой по умолчанию и найдите двоичные файлы для pip а также python.
readlink $(which pip)
../Cellar/python@2/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 flag предложит вам перезаписать, если цель существует.

Это должно делать свое дело.

В MacOS Ventura, после установки Python 3.11 с доморощенным пивом, я использую его в качестве интерпретатора, который находится по адресу/opt/homebrew/bin/python3.11также моя команда python и python3 также имеет псевдоним в этом месте. Просто бегpython3 -m pip install (MODULE_NAME)работал на меня.

Короче говоря, убедитесь, что вы устанавливаете модуль в среду, в которой работаете.

Я использовал права администратора в Ubuntu и столкнулся с этой проблемой. моя команда была sudo python3 <program.py>

Оказывается, пакеты, установленные для привилегий root, хранятся в другом месте, чем обычные привилегии пользователя.

Я исправил это, написав sudo pip install <package name>

Тогда я мог запустить программу. Удачи!

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

Создается впечатление, что при построении виртуальная среда задает VIRTUAL_ENVпеременная, которая содержит путь к себе, который, по-видимому, добавляется к PATHкогда среда активирована; это не обновляется при перемещении вручную, что означает, что изменение местоположения среды разрывает ссылки на содержащиеся в ней библиотеки.

Я просто исправил ситуацию, удалив и заново создав свою среду.

Below steps helped me fix this.

  • upgrade pip version
  • remove the created environment by using command rm -rf env-name
  • create environment using command python3 -m venv env-aide
  • now install the package and check

в моем случае я перехожу к настройкам venv в коде vs.
Перейдите по этой ссылке и прокрутите вниз до «Обновить настройки пути Venv» в VSCode:
https://techinscribed.com/python-virtual-environment-in-vscode/

Что сработало для меня (с использованием Python 3.8), было:

  1. Удаление остатков старых версий python (каким-то образом было установлено 3 разных, и их не заметили)
  2. обновление pip до последней версии
  3. удаление и переустановка модуля

Это позволяет избежать установки пакета pip в версию, которую вы и ваша IDE не используете.

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

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

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

Обязательно проверьте версию python, над которой вы работаете, если это 2, тогда работает только pip install. Если это 3. something, обязательно используйте pip3 install.

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