Python витальная среда (venv): общий доступ к библиотекам при использовании и разработке / тестировании venvs - PullRequest
1 голос
/ 01 апреля 2020

Я новичок в python venv, извините за возможный глупый вопрос.

Я занимаюсь разработкой небольшой библиотеки. Я создал виртуальную среду разработки со всеми пакетами, необходимыми для использования библиотеки, и заморозил все версии требований в файле require.txt.

Я также хотел бы создать файл require_test.txt со всеми пакетами, необходимыми для разработки и тестирования. Таким образом, пользователь будет устанавливать требования из файла require.txt, а разработчик - из файла require_test.txt со всеми необходимыми библиотеками (например, pytest, asv, sphinx).

Теперь я создал dev venv и теперь хочу создать тест Venv, конечно, я не хочу устанавливать одни и те же библиотеки дважды. Можно ли поделиться несколькими библиотеками из одного венва в другой?

Ответы [ 3 ]

2 голосов
/ 01 апреля 2020

Можно ли поделиться несколькими библиотеками из одного венва в другой?

Нет. Одна и та же библиотека (или приложение) будет установлена ​​один раз для виртуальной среды, установки не могут быть разделены между средами. И это прекрасно, как это. В этом весь смысл виртуальных сред: две установки из одной библиотеки изолированы друг от друга, в частности, в случае, когда для двух разных проектов требуются две разные версии одной библиотеки.

Совершенно справедливо, есть способы совместно использовать одну установку одной библиотеки между двумя виртуальными средами и причины для этого. Один известный пример, который я знаю в настоящее время, находится в более новых выпусках virtualenv (версии 20+). Вкратце: этот инструмент создает виртуальные среды и (при определенных условиях c) может повторно использовать (совместно использовать) установки pip , setuptools и wheel в нескольких средах см. сеялку app-data для virtualenv .

Еще несколько обсуждений по topi c:

0 голосов
/ 01 апреля 2020

Даже в виртуальных средах есть много библиотек, которые предустановлены с python и не нужны в пакете, который вы разрабатываете, когда я запускаю pip freeze в совершенно новой виртуальной среде, он сбрасывает 30 пакетов, и, конечно же, они не нужны для моего проекта.

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

0 голосов
/ 01 апреля 2020

Я думаю, что рекомендуется и рекомендуется иметь несколько венв и разных сред, будь то на одной машине. так что просто сделай еще один венв. Можно использовать одну и ту же библиотеку в обоих венах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...