установить пакеты в виртуальной среде с помощью pipenv из файла environment.yml

я только начинаю работать с pipenv, однако хочу воспроизвести проект кого-то, кто работал с conda. У меня есть соответствующий файл environment.yml, и я хочу загрузить необходимые пакеты в виртуальную среду, используя установку pipenv. Конечно, я мог бы сделать это вручную один за другим, но мне интересно, есть ли более сложный способ преобразования файла environment.yml либо в файл pip, либо в файл требования.txt, из которого установка pipenv также сможет загрузить пакеты в автоматическом режиме. спасибо, Олмо


person Olmo    schedule 15.10.2019    source источник


Ответы (3)


Создайте файл с именем requirements.txt, который будет включать все имена пакетов, которые вы хотите установить, так, чтобы имя каждого пакета было в одной строке.

Затем выполните приведенную ниже команду из расположения файла requirements.txt в вашей локальной системе:

Шаг 1. Переключитесь на свою среду с помощью команды conda активировать имя среды (для Windows) или исходной активации имя среды (для Linux/MacOS). После переключения он покажет имя вашей среды в скобках перед командой.

Шаг 2.
Перейдите в локальный каталог (содержащий файл requirements.txt), не выходя из среды, и выполните следующую команду:

pip install -r requirements.txt

Это также поможет: https://pipenv.readthedocs.io/en/latest/advanced/

person lazy_coder    schedule 15.10.2019
comment
разве это не установит пакеты на мой системный питон? Насколько я понимаю, преимущество установки pipenv заключается в том, что эта команда установит пакеты в виртуальную среду, созданную «оболочкой pipenv». - person Olmo; 15.10.2019
comment
Я отредактировал свой ответ для вашей помощи. Может сейчас поможет. - person lazy_coder; 15.10.2019
comment
Может быть, есть небольшое недоразумение. Я не использую conda и хотел бы избежать ее установки. Но могу ли я использовать «pip install - r requirements.txt». команда внутри активированной виртуальной среды, созданной через «оболочку pipenv»? - person Olmo; 15.10.2019
comment
pipenv install [имена пакетов] . Напишите все имена пакетов, которые вы хотите установить. - person lazy_coder; 15.10.2019

Способ, которым я решил эту проблему, состоял в том, чтобы переименовать «environment.yml», который создается менеджером пакетов conda, в «requirements.txt» и заменить «=» на «==», чтобы соответствовать другому синтаксису в pipenv. . Кроме того, файл «environment.yml» указывает версию Python, используемую для проекта. Эту строку необходимо удалить, так как версия python определяется командой pipenv --python x.x

Затем я выполнил pipenv -r install requirements.txt

тем самым я избегал копирования и вставки всех необходимых пакетов из файла environment.yml в оболочку.

person Olmo    schedule 15.10.2019

environment.yml — это файл, созданный менеджером пакетов conda. В то время как pipenv основан на диспетчере пакетов pip.

АФАИК, это невозможно. pip и conda - разные инструменты, и

  • они используют другой формат в сгенерированном файле среды.
  • Форматы пакетов, поддерживаемые ими, отличаются
  • Облачные хосты для распространения пакетов также различаются.
person Simba    schedule 15.10.2019