Как использовать несколько версий модуля Python на одной машине

Как на одной машине можно/нужно использовать две версии одного модуля 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 просто ищет в том же каталоге недостаточно для вышеуказанного случая.


person hilcharge    schedule 22.04.2015    source источник
comment
Могут ли они работать в разных виртуальных средах?   -  person jonrsharpe    schedule 22.04.2015
comment
Используйте шебанг, чтобы указать версию Python.   -  person Malik Brahimi    schedule 22.04.2015
comment
не могу надежно установить внешние файлы на рабочий компьютер с Windows - вам, вероятно, следует выйти. Если говорить более серьезно (не то чтобы я не собирался бросать курить всерьез), взгляните на относительный импорт. Кроме того, если вы запустите свой скрипт из \myproject\test|productionversion\, вы сможете from lib.python import mymodule в файле myprogram.py, и он должен работать.   -  person Ionut Hulub    schedule 22.04.2015
comment
Вы слышали о Python Launcher для Windows?   -  person Malik Brahimi    schedule 22.04.2015
comment
Можете ли вы уточнить информацию о различных виртуальных средах? Я не знаком извините. Версия python такая же, отличается только версия модуля. Не слышал о Python Launcher.   -  person hilcharge    schedule 22.04.2015
comment
Различные виртуальные среды — это то, что вы получаете, используя virtualenv, который был создан для таких проблем (pypi.python. org/pypi/virtualenv). Если вам не разрешено устанавливать это, вам действительно следует поговорить со своим администратором.   -  person SiggiSv    schedule 22.04.2015
comment
отлично, похоже, к этому нужно привыкнуть, но он устанавливается достаточно легко.   -  person hilcharge    schedule 23.04.2015