Подтвердить что ты не робот

Python эквивалент npm или rubygems

Я искал менеджера пакетов, который можно использовать с python. Я хочу указать зависимости проекта в файле. Например, Ruby использует Gemfile, где вы можете использовать установку пакета. Как я могу достичь этого в python?

4b9b3361

Ответ 1

Инструмент pip становится стандартом в эквиваленте драгоценных камней Ruby. Как distribute, pip использует репозиторий пакетов PyPI (по умолчанию) для разрешения и загрузки зависимостей. pip может устанавливать зависимости из зависимых от проекта проектов (называемых requirements.txt по соглашению):

pip install -r requirements.txt

Вы также можете "заморозить" текущие пакеты на пути Python, используя pip:

pip freeze > requirements.txt

При использовании в сочетании с пакетом virtualenv вы можете надежно создавать среды проекта Python с зависимыми от проекта зависимостями.

Ответ 2

Pipenv

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

Я нашел очень хороший эквивалент для npm, он называется pipenv. Он одновременно обрабатывает требования virtualenv и pip, поэтому он больше похож на npm.


Простой вариант использования

pip install pipenv

тогда вы можете создать новый virtualenv с третьей версией python, а также создать pip файл, который будет заполнен требованиями вашего проекта и другими материалами:

pipenv install --three

используя созданный вами virtualenv:

pipenv shell

установка нового пакета Python:

pipenv install requests

запуск вашего .py файла похож на:

pipenv run python somefile.py

вы можете найти его здесь.

Ответ 3

Python использует pip для менеджера пакетов. Команда pip install имеет параметр -r <file> для установки пакетов из указанного файла требований.

Установить команду:

pip install -r requirements.txt

Пример requirements.txt Содержание:

Foo >= 1.2
PickyThing <1.6,>1.9,!=1.9.6,<2.0a0,==2.4c1
SomethingWhoseVersionIDontCareAbout

См. раздел "Анализ требований" в документах для полного описания формата: https://pip.pypa.io/en/stable/user_guide/#requirements-files

Ответ 4

Вот как я ограничиваю область действия pip текущим проектом. Похоже на обратное, если вы пришли из NodeJS npm или PHP composer, где вы явно указываете глобальные установки с помощью -g или --global.

Если у вас еще не установлен virtualenv, установите его глобально с помощью:

 pip install virtualenv

Каждый проект Python должен иметь свою собственную установку virtualenv. Его легко настроить, просто cd в корневой каталог вашего проекта и:

 python3 -m virtualenv env  # creates env folder with everything you need

Активировать virtualenv:

 source env/bin/activate

Теперь любое взаимодействие с pip содержится в вашем проекте.

Запустите pip install package_name==version для каждой из ваших зависимостей. Они установлены в ./env/lib/python3.x/site-packages/

Если вы хотите сохранить зависимости проекта в файл, запустите:

 pip freeze > requirements.txt

На самом деле вам не нужны -l или --local, если вы находитесь в активированном virtualenv для конкретного проекта (которым вы и должны быть).

Теперь, когда вы хотите установить свои зависимости из requirements.txt, настройте вашу virtualenv и запустите:

 pip install -r requirements.txt

Это все.

Ответ 5

Это старый вопрос, но все постоянно развивается.

Далее к другому ответу о pipenv. Существует также менеджер пакетов Python, который называется poetry.

Подробное сравнение между pipenv и poerty приведено здесь: Сравнение функций между менеджерами пакетов npm, pip, pipenv и Стихи. Он также связывает функции с общими функциями npm.