Подтвердить что ты не робот

Каковы подводные камни и обходные пути при использовании виртуальных сред Python в Windows?

Краткое описание
Вопрос не в том, чтобы спросить, нужны ли виртуальные среды, но при использовании Ian Bicking virtualenv, что является лучшим способом, если есть, для управления средами в Windows. Если у вас есть несколько идей, ответьте несколько раз, чтобы получить лучшие ответы. Благодарю!

Фон
При разработке в python я обычно стараюсь использовать Mac osx/ bash как можно больше. Однако всегда есть проекты, которые я вынужден использовать Windows для поддержки аппаратных/драйверов. Для этих проектов я склонен полагаться на метод "двойного щелчка" для запуска модулей с зарегистрированным python.exe. Использование "двойного щелчка" - это простой способ одновременного запуска нескольких потоков/тестов без необходимости открывать новое командное приглашение, переходить к нужному каталогу, а затем вводить "python.exe module.py",

Конечная цель
Я хотел бы иметь способ управлять и использовать виртуальные среды, не будучи в командной строке (только для Windows)

Список пожеланий
1. Уметь устанавливать модули из любой команды (командной строки) или из двоичных файлов (для тех, которые не могут быть установлены с помощью протокола по любой причине).
2. Управляйте средами с помощью virtualenv.exe из графического интерфейса. (Создать, удалить, перечислить, активировать и т.д.)

Исследование
До сих пор я мог выполнять бит и куски моего списка пожеланий, используя разные сценарии/методы, но еще не нашел способ их комбинирования. Я планировал объединить большинство из них в GUI, но думал, что было бы разумно выяснить, есть ли веская причина, которой этого уже не существует.

Установка двоичных файлов в виртуальную среду может быть выполнена довольно просто с помощью script, который изменяет, какая версия python зарегистрирована в Windows. Я использую script в течение нескольких месяцев, но ничего, кроме отличных результатов. См. СО-вопрос

Управление средой представляется более сложной.

При использовании bash существует virutalenvwrapper, написанный Дугом Хеллманном. Я использую это при работе в Mac OSX и рекомендую его.

В Power Shell найдено порт этого приложения , но для этого потребуется интерфейс сторонней командной строки.

Один из наиболее уникальных портов для окон, в которых я видел порты virtualenvwrapper для файлов bat. Я не тестировал это, но все равно потребуется использовать командную строку. Найдено здесь

Самая многообещающая вспомогательная функция, которую я нашел на сегодняшний день, написана Джастином Дрисколлом. В то время как этот точный пример потребует командной строки, было бы тривиально преобразовать это в то, что может вызвать GUI python. Это был путь, по которому я спускался, прежде чем я подумал, что должен проверить с массами наилучший способ достичь своей цели.

4b9b3361

Ответ 1

Возможно, вам стоит взглянуть на zc.buildout. Предполагая, что пользователь установил Python, вы можете дважды щелкнуть по bootstrap.py python script, чтобы создать среду.

После создания двойное нажатие на bin\buildout.exe будет рекурсивно устанавливать зависимости и запускать любые методы, которые вы определяете. zc.buildout позволяет указать зависимости от платформы и непитонные зависимости. Кроме того, вы можете определить свои собственные скрипты для сборки, чтобы поместить их в папку bin\. Например, команда Plone имеет хорошую статью, в которой Buildout on Windows, ссылаясь на свои собственные script bin\instance.exe

Несмотря на то, что Mac/Linux/BSD не совсем отполирован как virtualenv, будет создана одна и та же среда создания (например, bin/buildout вместо bin\buildout.exe), что позволит вам выполнить кросс-платформенные требования.