Как сохранить другую версию модуля Python? - PullRequest
3 голосов
/ 09 декабря 2010

У меня есть этот основной модуль python, который мы используем в нашем средстве, называемом mfxLib. Мне нужно иметь возможность сохранить другую версию этого модуля, не нарушая все другие модули / плагины, которые импортируют этот модуль.

Моим решением было сохранить дубликаты моего модуля, переименовав их в mfxLib01 и mfxLib02, а затем заменить оригинальный модуль mfxLib пустым модулем, содержащим только файл __init__.py, который импортирует последнюю версию.

# content of mfxLib.__init__.py
from mfxLib02 import *

Это кажется логичным и, кажется, работает, но мне было интересно, была ли распространенная практика для этого? руководящие принципы, чтобы следовать? и т.д.

Спасибо

Ответы [ 3 ]

4 голосов
/ 09 декабря 2010

Вы можете импортировать модуль как другое имя.Обычно люди используют это для сохранения ввода длинного имени модуля, например:

import numpy as np
np.array([1,2,3,4])

Следовательно, вы можете сделать:ваш код везде использует mfxLib.

Это может помочь ...

1 голос
/ 09 декабря 2010

Если у вас разные сценарии, требующие разных версий, ваш текущий подход должен быть лучшим, но я бы предложил использовать систему контроля версий, такую ​​как Git или SVN.Это позволит вам легко фиксировать и возвращаться к более ранним версиям, а также делиться модулем с другими пользователями.

0 голосов
/ 09 декабря 2010

Контроль версий почти наверняка сделает вашу жизнь проще.В дополнение к рекомендациям Петтерсона, рассмотрим Mercurial .Как git и SVN, это бесплатно.Он также написан на Python и должен без проблем работать на любой из ваших систем.

Рекомендации Spacedman также полезны, особенно если различия между версиями представляют настройки для конкретных систем и настройки относительно стабильны.Обратите внимание, что вы можете использовать этот подход в сочетании с системой контроля версий.

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

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