Каковы подводные камни и обходные пути при использовании виртуальных сред Python в Windows? - PullRequest
12 голосов
/ 04 мая 2011

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

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

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

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

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

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

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

Существует порт этого приложения в Power Shell, найденный здесь , но все равно для установки потребуется интерфейс командной строки стороннего производителя.

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

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

1 Ответ

2 голосов
/ 09 мая 2011

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

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

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

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