Модуль установки 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.
Шаги по разрешению:
- Откройте новый терминал со средой по умолчанию и найдите двоичные файлы для
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
в моем случае.
- Замените символическую ссылку 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), было:
- Удаление остатков старых версий python (каким-то образом было установлено 3 разных, и их не заметили)
- обновление pip до последней версии
- удаление и переустановка модуля
Это позволяет избежать установки пакета pip в версию, которую вы и ваша IDE не используете.
Для меня проблема была в том, что у меня были странные настройки конфигурации в файле pydistutils.cfg
Попробуйте запустить
rm ~/.pydistutils.cfg
Как вы установили easy_install/pip? убедитесь, что вы установили его для обновленной версии python. здесь может произойти следующее: старая (по умолчанию) установка python может быть связана с вашей установкой pip. Вы можете попробовать запустить версию по умолчанию и импортировать недавно установленные модули.
Обязательно проверьте версию python, над которой вы работаете, если это 2, тогда работает только pip install. Если это 3. something, обязательно используйте pip3 install.