Как именно работает Python виртуальная среда? Разница между похожей концепцией в Java \ C # - PullRequest
0 голосов
/ 15 января 2020

Я абсолютно новичок в Python (я пришел из Java и C#), и у меня есть следующие сомнения, связанные с концепцией виртуальная среда .

Чтение на официальная документация: https://docs.python.org/3/tutorial/venv.html

ясно, что разные приложения могут нуждаться в разных версиях библиотеки c.

Работа в Java \ C# У меня есть, что у каждого проекта есть своя собственная зависимость, поэтому у каждого проекта есть одна и та же JVM, и у каждого указанного проекта c есть свои собственные зависимости, которые необходимо добавлять вручную или обрабатывать с помощью таких инструментов, как Maven.

На предыдущая Python документация. Я могу прочитать это:

Это означает, что одна Python установка может не соответствовать требованиям каждого приложения. Если для приложения A требуется версия 1.0 определенного модуля, а для приложения B требуется версия 2.0, то требования вступают в конфликт, и установка версии 1.0 или 2.0 приведет к невозможности запуска одного приложения.

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

Поэтому мне кажется, что Python работает совсем не так, как Java \ C#. Это создает виртуальную среду, в которой вся установка Python (интерпретатор) дублируется со всеми возможными зависимостями для конкретного c проекта, создавая его c виртуальную среду.

Правильно ли мое повторное объяснение или я что-то упустил? В случае, если это должно быть правильно: почему этот выбор реплицирует всю Python установку в виртуальной среде? Почему установка Python не распространяется на все проекты, и каждый проект имеет свои определенные c зависимости, как в Java \ C#?

...