Встраивание нескольких версий Python в процесс

В приложении, которое мы пишем, мы планируем позволить пользователям выполнять сценарии Python в одной из многих версий Python (например, Python 2.7, 3.6 и т. д.). Мы используем стандартный метод для встраивания интерпретатора Python, за исключением того, что мы динамически загружаем и инициализация различных библиотек DLL интерпретатора Python (python*.dll). Могут ли разные версии интерпретатора python сосуществовать в одном и том же процессе (т. е. можно ли загружать и инициализировать несколько python* DLL в один и тот же процесс)? Эти могут как-то мешать?

Этот вопрос связано, но не одно и то же. Вопрос только спрашивает, как использовать несколько версий интерпретатора Python в одном процессе, но не спрашивает, поддерживается ли это и ожидается ли его работа.


person aprasad    schedule 23.05.2017    source источник
comment
Слишком широкий. В любом случае звучит как плохая идея.   -  person too honest for this site    schedule 24.05.2017
comment
.dll предоставляет функции (в нашем случае) для использования другими (.dll, .exe, ...). То, как потребитель получает доступ к функциям .dll (связывание или динамическая загрузка), не имеет значения. Пример: [SO]: какие файлы необходимы для Py_Initialize запустить?. 2-й вопрос: каждая (основная, иногда второстепенная) версия Python создается с использованием другой версии VStudio. Ваше приложение будет иметь свое собственное, поэтому будут случаи, когда будет загружено более 1 среды выполнения VStudio — это может привести к беспорядку.   -  person CristiFati    schedule 24.05.2017
comment
Спасибо, Кристи. Единственное, о чем я беспокоился при динамической загрузке, так это о том, есть ли какой-то пользовательский код инициализации в python*.lib (на который я бы ссылался, если бы я не загружал динамически). Если python*.lib — это просто стандартный файл lib, сгенерированный VC, то, как вы говорите, проблем нет.   -  person aprasad    schedule 24.05.2017
comment
Не о чем беспокоиться (ну, за исключением двух сред выполнения VStudio C, но я не уверен, что это вызовет проблемы).   -  person CristiFati    schedule 24.05.2017