Pythonistas устанавливает системные пакеты, которые затем используются всеми проектами python. Это приводит к множеству проблем, которые пытается решить virtualenv. Ребята из Scala и вообще люди Java имеют определение для каждого проекта, которое написано для инструмента управления зависимостями: mvn (xml), sbt (scala), gradle (groovy) и т. Д.
Большинство этих инструментов имеют системно- так что обычно он загружает некоторую версию зависимости только один раз, а затем помещает ее в определенное место на вашем диске. Когда вам нужно запустить/собрать вашу программу java или scala, она создаст так называемую переменную CLASSPATH, которая состоит из патчей в требуемые библиотеки. Затем переменная CLASSPATH (aka PYTHONPATH в мире python) используется средой выполнения для поиска необходимых частей. Опять же, CLASSPATH сильно варьируется от проекта к проекту, тогда как PYTHONPATH является довольно постоянным. Я действительно верю, что могут быть инструменты, которые выполняют ту же самую работу, но это не принято в мире JVM.
Моя первая мысль состоит в том, что некоторая комбинация Maven/SBT выполнит то, что вы хотите, но было бы полезно, если бы вы указали, что именно 'pip' делает, что вы хотите подражать. –
Это отличный вопрос, не могу поверить этим модам ... – coleifer