Как установить пакет Python из IPython?
Интересно, возможно ли установить пакеты Python, не выходя из оболочки IPython.
7 ответов
Вы можете использовать !
префикс как этот:
!pip install packagename
!
префикс является сокращением для %sc
команда для запуска команды оболочки.
Вы также можете использовать !!
префикс, который является сокращением для %sx
команда для выполнения команды оболочки и захвата ее вывода (сохраняется в _
переменная по умолчанию).
Принятый ответ aculich не будет работать при любых обстоятельствах, например:
- Если вы установили ipython/jupyter в venv и запустите его напрямую через venv
python
двоичный - Если у вас есть несколько версий Python, например, EntryLevelR.
Правильная команда:
import sys
!{sys.executable} -m pip install requests
Лучший способ сделать это в современном jupyter является использование%pip
магия :
%pip install my_package
import pip
pip.main(['install', 'package_name'])
Вышеуказанные ответы на основе оболочки не работают, если pip
находится в вашем $PATH (например, в Windows).
Мне нравится ответ Hurfdurf, но сам iPython может не распознать новый модуль (особенно, если он добавляет к пути к библиотеке). Вот расширенный пример с iPython 3:
import pip
pip.main(['install','pygame'])
# import pygame at this point can report ImportError: No module named 'pygame'
import site
site.main()
# now with refreshed module path...
import pygame
или аналогичные коды не будут верным ответом, если у нас есть разные версии Python, где желаемая версия Python не является системной по умолчанию. Такие коды будут устанавливать пакеты только в версии Python по умолчанию. На мой взгляд, будет полезен следующий код:
import pip
if int(pip.__version__.split('.')[0])>9:
from pip._internal import main
else:
from pip import main
main(['install', 'package_name']) # the strings in the square brackets could be specified as needed
Этот код написан на основе версии pip, которая может быть запущена из консоли и будет применяться к любым версиям python, путь которых задается консолью; Спецификации этой версии Python могут быть просмотрены
import sys; sys.version, sys.path
. Я не уверен, что это лучший подход, но вышеупомянутый код работал для моих целей и
!pip install packagename
или
%pip install packagename
не сделал ( где python: 2.7.9, pip: 19.2.3, IPython QtConsole: 3.1.0).
Если вы используете Conda Package Manager, следующий синтаксис может соответствовать вашим потребностям.
$ conda install -c conda-forge <targetPackageName>