Я абсолютно новичок в 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#?