Ответы:
pip запускается из командной строки, а не интерпретатора Python. Это программа, которая устанавливает модули, поэтому вы можете использовать их из Python. Как только вы установили модуль, вы можете открыть оболочку Python и сделать import selenium
.
Оболочка Python - это не командная строка, это интерактивный интерпретатор. Вы вводите в него код Python, а не команды.
pip
будет находиться в каталоге scripts вашей установки python, поэтому вы захотите добавить его в свой путь. Добавьте C:\Python32\scripts
к своему PATH
. При необходимости измените путь в зависимости от того, где вы его установили.
Используйте командную строку, а не оболочку Python (DOS, PowerShell в Windows).
C:\Program Files\Python2.7\Scripts> pip install XYZ
Если вы установили Python в PATH, используя последние установщики, вам не нужно находиться в этой папке для запуска pip
Терминал в Mac или Linux
$ pip install XYZ
PATH
. Я должен был сделать это вручную, указывая на путь установки в%APPDATA%
Поскольку @sinoroc предложил правильный способ установки пакета через pip, это использовать отдельный процесс, так как pip может вызвать закрытие потока или может потребовать перезапуска интерпретатора для загрузки нового установленного пакета, так что это правильный способ использования API: subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'SomeProject'])
но поскольку Python позволяет чтобы получить доступ к внутреннему API, и вы знаете, что вы используете API для вас, вы можете в любом случае использовать внутренний API, например. если вы создаете собственный менеджер пакетов GUI с альтернативными ресурсами, такими как https://www.lfd.uci.edu/~gohlke/pythonlibs/
Следующее решение - УСТАРЕЛО, вместо понижения предлагайте обновления. см. https://github.com/pypa/pip/issues/7498 для справки.
get_installed_distributions()
или main
метод под import pip
вместо использования import pip._internal as pip
.
ОБНОВЛЕНИЕ ок. v.18 get_installed_distributions()
был удален. Вместо этого вы можете использовать генератор, freeze
как это:
from pip._internal.operations.freeze import freeze
print([package for package in freeze()])
# eg output ['pip==19.0.3']
import pip
package_names=['selenium', 'requests'] #packages to install
pip.main(['install'] + package_names + ['--upgrade'])
# --upgrade to install or update existing packages
Если вам нужно обновить каждый установленный пакет, используйте следующее:
import pip
for i in pip.get_installed_distributions():
pip.main(['install', i.key, '--upgrade'])
Если вы хотите прекратить установку других пакетов в случае сбоя какой-либо установки, используйте его в один pip.main([])
вызов:
import pip
package_names = [i.key for i in pip.get_installed_distributions()]
pip.main(['install'] + package_names + ['--upgrade'])
Примечание . При установке из списка в файл с параметром -r
/ --requirement
вам НЕ требуется функция open ().
pip.main(['install', '-r', 'filename'])
Предупреждение : некоторые простые параметры --help
могут привести к остановке интерпретатора Python.
Любопытство: используя его, pip.exe
вы все равно используете интерпретатор Python и модуль pip. Если вы распакуете pip.exe
или pip3.exe
вне зависимости от того, что это Python 2.x или 3.x, внутри будет один и тот же файл __main__.py
:
# -*- coding: utf-8 -*-
import re
import sys
from pip import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
Чтобы запустить pip в Python 3.x, просто следуйте инструкциям на странице Python : Установка модулей Python .
python -m pip install SomePackage
Обратите внимание, что это запускается из командной строки, а не из оболочки Python (причина синтаксической ошибки в исходном вопросе).
Первоначально я тоже столкнулся с этой же проблемой, я установил python, и когда я запускал pip
команду, он вызывал ошибку, как показано на рисунке ниже.
Убедитесь, что путь в пипсах добавлен в переменные среды. Для меня путь установки python и pip: ::
Python: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\
pip: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\Scripts
Оба эти пути были добавлены к пути в переменных среды.
Теперь откройте новое окно cmd и введите pip, вы должны увидеть экран, как показано ниже.
Сейчас типа pip install <<package-name>>
. Здесь я устанавливаю пакет spyder, поэтому мой оператор командной строки будет таким же, как pip install spyder
и мой рабочий экран ...
и я надеюсь, что мы закончили с этим !!
Вам нужно ввести его в cmd, а не в режиме IDLE. потому что IDLE не является командной строкой, если вы хотите установить что-то из IDLE, введите это
>>>from pip.__main__ import _main as main
>>>main(#args splitted by space in list example:['install', 'requests'])
это вызывает пип, как pip <commands>
в терминале. Команды будут разделены пробелами, которые вы там делаете.
ImportError: cannot import name main
используя pip v19.0.3
Программно, в настоящее время работает следующее . Я вижу все ответы после 10.0 и все, но ни один из них не является правильным путем для меня. В Kaggle это приложение работает точно
from pip._internal import main as _main
package_names=['pandas'] #packages to install
_main(['install'] + package_names + ['--upgrade'])
Попробуйте обновить пункт с помощью приведенной ниже команды и повторите попытку
python -m pip install -U pip