Как на одной машине можно/нужно использовать две версии одного модуля Python
а) одновременно на одной машине,
(b) под одним пользователем, и
(c) без установки внешних программ (к сожалению, нельзя надежно установить внешние программы на рабочий компьютер с Windows),
(d) с тем же именем (чтобы не допускать проблем при обновлении ($ git pull newversion
))
Рабочая версия проекта кода работает постоянно. На той же машине периодически запускается тестовая/разрабатываемая версия кода. Как они оба могут использовать свою собственную версию данного модуля?
Версия А:
#!/usr/bin/python34
#C:\\myproject\\testversion\\bin\\myprogram.py
import mymodule ## this version in C:\\myproject\\testversion\\lib\\python
mymodule.do_stuff() # do_stuff version A
Версия Б:
#!/usr/bin/python34
#C:\\myproject\\productionversion\\bin\\myprogram.py
import mymodule ## this version is in C:\\myproject\\productionversion\\lib\\python
mymodule.do_stuff() ## do_stuff version B
Строгое использование переменной среды PythonPath
приведет к выбору одного и того же mymodule
для обеих версий, если я правильно понимаю.
После прочтения этого вопроса о различных модулях python и документы по python о модулях, мне кажется, организация пакета, а не просто модуля, может быть уместной, но я не могу точно сказать, какова будет наилучшая практика из этого.
Кроме того, поскольку я думал, что стандартная (лучшая?) процедура для многих проектов, таких как пакеты deb и т. д., заключается в том, чтобы скрипты находились в другой папке, чем модули (например, bin или lib), кажется, что ключевое слово import
просто ищет в том же каталоге недостаточно для вышеуказанного случая.
from lib.python import mymodule
в файлеmyprogram.py
, и он должен работать. - person Ionut Hulub   schedule 22.04.2015virtualenv
, который был создан для таких проблем (pypi.python. org/pypi/virtualenv). Если вам не разрешено устанавливать это, вам действительно следует поговорить со своим администратором. - person SiggiSv   schedule 22.04.2015