Управление средой Python (разработка / выпуск) - PullRequest
0 голосов
/ 15 апреля 2011

Я выпустил пакет на своем рабочем месте;им пользуются ~ 10 человек.У меня очень быстрый цикл разработки / тестирования / выпуска (иногда два раза в день), и я начинаю страдать от повышенного расстройства в моей среде.Я хочу управлять этой средой с помощью таких инструментов, как virtualenv и setuptools, но, похоже, я не достиг того, чего хочу.

Например, я хочу использовать "тестовую" базу данных при разработке, но выпустить в «реальную» базу данных.Что-то вроде:

if env == "devel":
 dbpath = "/path/to/devel.db"
if env == "release":
 dbpath = "/path/to/real.db"

Точно так же у меня есть несколько файлов конфигурации с разными параметрами для разработки и выпуска (сегодня я забыл изменить один и отправил всей команде десятки писем по электронной почте!).

Я хочу, чтобы код оставался чистым и отделенным, поэтому я бы предпочел не кодировать решение, подобное представленному выше.

Итак, как бы вы создали рабочий процесс для управления этим? Я бы предпочел не полагаться на переменные окружения и операторы __file__ (но, может быть, мне следует?).

Извинения.Я знаю, что это не очень умный вопрос, но я хочу надежно использовать имеющиеся в моем распоряжении инструменты.

1 Ответ

2 голосов
/ 15 апреля 2011

Я бы предпочел не полагаться на переменные окружения и file операторов (но, может быть, я должен?).

Вы должны.

Вы должны использовать три вещи.

  1. Переменные среды.

  2. Файлы конфигурации.

  3. Command-строковые параметры.

Как и любая другая программа командной строки.

Если это импортированный модуль, а не программа, то он не должен иметь никакой конфигурации любого вида.,Все сценарии, которые импортируют ваш модуль, должны предоставлять все конфигурацию в качестве аргументов и параметров

Ни при каких обстоятельствах импортированный модуль не должен иметь собственную конфигурацию.

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