Python, pip: Как посмотреть зависимости конкретной версии модуля перед установкой
Подскажите, пожалуйста, лучший способ посмотреть список зависимостей для конкретного модуля перед установкой. Допустим у меня есть проект на Python3.7 где есть определенный список модулей разных версий. Мне необходимо добавить модуль pdfplumber. Но мне необходимо установить такую версию, что бы существующие модули не конфликтовали и не повышались в версии. Как мне лучше всего просмотреть список зависимостей, перед установкой ? За ранее спасибо!
Отслеживать
задан 26 апр 2023 в 9:45
23 4 4 бронзовых знака
Чтобы увидеть зависимости какого либо модуля перед установкой, можно попробовать использовать pip show <имя модуля>(например, pip show pdfplumber ). А чтобы увидеть зависимости всех установленных модулей, можно ввести pip freezeимя>
26 апр 2023 в 9:49
поправляю себя, pip show работает только в случаях когда пакет уже установлен.
26 апр 2023 в 9:53
Вот в этом и вопрос. Эта команда не подходит. Есть ли способ проверить перед установкой ?
26 апр 2023 в 9:57
Можно попробовать использовать pip download для скачивания пакета напрямую и их зависимостей вместе без установки
26 апр 2023 в 9:57
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Вариант 1 — смотрим json через pypi.org
Делаем запрос по имени библиотеки и версии, в данном случае
https://pypi.org/pypi/pdfplumber/0.9.0/json
в Json находим параметр «requires_dist» :
"requires_dist": [ "pdfminer.six (==20221105)", "Pillow (>=9.1)", "Wand (>=0.6.10)" ]
Вариант 2 — для Windows
Хорошим методом будет являться скачивание модуля в виде архива и просмотр файла requirements.txt . Для этого можно воспользоваться командой в powershell :
pip download pdfplumber --no-deps --no-binary=:all:
После этого откройте скачанный архив и найдите там файл requirements.txt В моем случае внутри он выглядит так:
pdfminer.six==20221105 Pillow>=9.1 Wand>=0.6.10
UPD.0 Если убрать из команды —no-deps , то возможно скачивание сразу и зависимых библиотек, но это приведет к их установке.
UPD.1 Для скачивания архива для последующего нахождения зависимостей конкретной версии библиотеки, можно действовать так:
pip download pdfplumber== --no-deps --no-binary=:all:
Где — это версия вашей библиотеки, соответственно.
UPD.2 Для нахождения зависимостей зависимостей, откройте первый requirements.txt и повторите операцию по скачиванию файла архива библиотеки для каждой зависимости, затем откройте их собственные requirements.txt если таковые имеются.
Python 3: Как узнать версию библиотеки Pandas, Numpy
Вариант 1. Узнаем версию библиотеки в скрипте Python
Для того, чтобы узнать версию библиотеки, необходимо вбить следующую команду (например для Pandas):
import pandas as pd print (pd.__version__)
Пример для Numpy:
import numpy as np print (np.__version__)
Вариант 2. Проверить с помощью pip менеджера пакетов
С помощью менеджера пакетов pip можно проверить версию установленных библиотек, для этого используются команды:
- pip list
- pip freeze
- pip show pandas
pip list
Выведет список установленных пакетов, включая редактируемые.
Пишем в консоли команду:
pip list
Результат:

pip freeze
Выводит установленные пакеты, которые ВЫ установили с помощью команды pip (или pipenv при ее использовании) в формате требований.
Вы можете запустить: pip freeze > requirements.txt на одной машине, а затем на другой машине (в чистой среде) произвести инсталляцию пакетов: pip install -r requirements.txt .
Таким образом вы получите идентичную среду с точно такими же установленными зависимостями, как и в исходной среде, в которой вы сгенерировал файл requirements.txt.
Результат:

pip show
Выводит информацию об одном или нескольких установленных пакетах.
Пример:
pip show pandas
Результат:

Anaconda — conda list
Если вы используете Anaconda, то вы можете проверить список установленных пакетов в активной среде с помощью команды conda list .
Как узнать версию установленного пакета в Python с помощью pip
При работе с Python часто возникает необходимость использования различных сторонних пакетов. Это могут быть библиотеки для анализа данных, машинного обучения, работы с веб-серверами и многие другие. Иногда бывает важно знать, какую именно версию пакета вы используете. Например, в некоторых случаях функционал пакета может меняться от версии к версии.
Инструмент для установки пакетов в Python называется pip. Он позволяет устанавливать, обновлять и удалять пакеты. Но кроме этого, с его помощью можно узнать версию установленного пакета.
Допустим, есть пакет с названием XYZ. Чтобы узнать его версию, можно воспользоваться командой pip show XYZ в командной строке. В выводе этой команды будет строка Version , которая и показывает версию пакета.
pip show XYZ
Вывод будет примерно таким:
Name: XYZ Version: 1.0.0 Summary: XYZ is a sample package Home-page: https://example.com Author: Example Author Author-email: author@example.com License: MIT Location: /usr/local/lib/python3.7/site-packages Requires: Required-by:
В данном примере версия пакета XYZ — 1.0.0.
Таким образом, с помощью pip можно легко и просто узнавать версии установленных пакетов, что помогает контролировать их актуальность и совместимость с другими пакетами.
Получение сведений о пакете Python
В этой статье описывается, как получить сведения об установленных пакетах Python, включая версии и расположения установки, в Службах машинного обучения SQL Server и кластерах больших данных. Примеры сценариев Python показывают, как получить сведения о пакете, например путь установки и версия.
В этой статье описывается, как получить сведения об установленных пакетах Python, включая версии и расположения установки, в Службах машинного обучения SQL Server. Примеры сценариев Python показывают, как получить сведения о пакете, например путь установки и версия.
В этой статье описывается, как получить сведения об установленных пакетах Python, включая версии и расположения установки, в Службах машинного обучения управляемого экземпляра SQL Azure. Примеры сценариев Python показывают, как получить сведения о пакете, например путь установки и версия.
Расположение библиотеки Python по умолчанию
При установке машинного обучения с помощью SQL Server на уровне экземпляра создается отдельная библиотека пакетов для каждого устанавливаемого языка. Библиотека экземпляров является защищенной папкой, зарегистрированной в SQL Server.
Все скрипты или код, выполняемые в базе данных на SQL Server, должны загружать функции из библиотеки экземпляров. SQL Server не может получить доступ к пакетам, установленным в других библиотеках. Это относится и к удаленным клиентам: любой код Python, выполняющийся в контексте вычислений сервера, может использовать только пакеты, установленные в библиотеке экземпляров. Для защиты серверных ресурсов библиотека экземпляров по умолчанию может быть изменена только администратором компьютера.
Путь по умолчанию к двоичным файлам для Python:
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES
Предполагается, что экземпляр SQL по умолчанию — MSSQLSERVER. Если SQL Server устанавливается как определяемый пользователем именованный экземпляр, вместо него используется указанное имя.
Путь по умолчанию к двоичным файлам для Python:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\PYTHON_SERVICES
Предполагается, что экземпляр SQL по умолчанию — MSSQLSERVER. Если SQL Server устанавливается как определяемый пользователем именованный экземпляр, вместо него используется указанное имя.
Включите внешние скрипты, выполнив следующие команды SQL:
sp_configure 'external scripts enabled', 1; RECONFIGURE WITH override;
В Управляемом экземпляре SQL Azure выполнение команд sp_configure и RECONFIGURE приводит к перезагрузке сервера SQL для активации параметров RG. В результате сервер будет недоступен в течение нескольких секунд.
Выполните приведенную ниже инструкцию SQL, чтобы проверить библиотеку по умолчанию для текущего экземпляра. Этот пример возвращает список папок, включенных в переменную sys.path Python. Список содержит текущий каталог и путь к стандартной библиотеке.
EXECUTE sp_execute_external_script @language =N'Python', @script=N'import sys; print("\n".join(sys.path))'
Дополнительные сведения о переменной sys.path и о том, как она используется для задания пути поиска для модулей, см. в разделе Путь поиска модуля.
Не пытайтесь установить пакеты Python непосредственно в библиотеке пакетов SQL с помощью pip или аналогичных методов. Вместо этого используйте sqlmlutils для установки пакетов в экземпляре SQL. Дополнительные сведения см. в статье Установка пакетов Python с помощью sqlmlutils.
Пакеты Microsoft Python по умолчанию
Приведенные ниже пакеты Python устанавливаются вместе со Службами машинного обучения SQL Server, если во время установки выбран компонент Python.
| Пакеты | Версия | Описание |
|---|---|---|
| revoscalepy | 9.4.7 | Используется для удаленных контекстов вычислений, потоковой передачи, параллельного выполнения функций rx для импорта и преобразования, моделирования, визуализации и анализа данных. |
| microsoftml | 9.4.7 | Добавляет алгоритмы машинного обучения в Python. |
Сведения о том, какая версия Python включена, приведены в разделе Версии Python и R.
Обновление компонентов
По умолчанию пакеты Python обновляются с помощью пакетов обновления и накопительных пакетов обновления. Дополнительные пакеты и обновления полных версий основных компонентов Python возможны только при обновлении продукта.
Пакеты Python с открытым кодом по умолчанию
При выборе языка Python во время установки устанавливается дистрибутив Anaconda 4.2 (через Python 3.5). В дополнение к библиотекам кода Python стандартная установка включает примеры данных, модульные тесты и примеры сценариев.
Никогда не следует вручную перезаписывать версию Python, установленную программой установки SQL Server, более новыми версиями в Интернете. Пакеты Microsoft Python основаны на конкретных версиях Anaconda. Изменение установки может привести к дестабилизации.
Просмотр всех установленных пакетов Python
Приведенный ниже пример сценария отображает список всех пакетов Python, установленных в экземпляре SQL Server.
EXECUTE sp_execute_external_script @language = N'Python', @script = N' import pkg_resources import pandas OutputDataSet = pandas.DataFrame(sorted([(i.key, i.version) for i in pkg_resources.working_set]))' WITH result sets((Package NVARCHAR(128), Version NVARCHAR(128)));
Поиск одного пакета Python
Если вы установили пакет Python и хотите убедиться, что он доступен для конкретного экземпляра SQL Server, можно выполнить хранимую процедуру, которая ищет этот пакет и отображает соответствующие сообщения.
Например, следующий код ищет пакет scikit-learn . Если пакет найден, код выводит версию пакета.
EXECUTE sp_execute_external_script @language = N'Python', @script = N' import pkg_resources pkg_name = "scikit-learn" try: version = pkg_resources.get_distribution(pkg_name).version print("Package " + pkg_name + " is version " + version) except: print("Package " + pkg_name + " not found") '
STDOUT message(s) from external script: Package scikit-learn is version 0.20.2
Просмотр версии Python
Следующий пример кода возвращает версию Python, установленную в экземпляре SQL Server.
EXECUTE sp_execute_external_script @language = N'Python', @script = N' import sys print(sys.version) '