Запуск двух версий Python в одном скрипте. Возможный? - PullRequest
0 голосов
/ 29 марта 2019

У меня есть чистый Python 3.7.3 и другой Python 3.7.0, который поставляется в комплекте с программным обеспечением QGIS.

Я установил Python по умолчанию как 3.7.0 и мне нужно, чтобы некоторые функции и модули работали в 3.7.3.

Я мог бы установить в своей среде по умолчанию 3.7.3, но в этом случае я не могу получить доступ к qgis.core lib.В 3.7.0 мне нужно выполнить from PyQt5 import QtWidgets, но здесь он выдает и ошибка отсутствия DLL.Переустановка pyqt5 повредит qgis и полностью удалит ее.

Итак, я вижу, что мне нужно запускать скрипты из 3.7.0 с функциями Qt, которые работают в чистом 3.7.3.Но как я могу вставить в свой сценарий.Я пытался протестировать virtualenv, но похоже, что он не хочет устанавливать временную среду.

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Сделано.

В скрипт 3.7.0 добавляю

import sys 
qt_bundle =['~long_path_to_appdata\\Python\\Python37-32\\lib\\site-packages\\'] # list in case I need to add more modules
sys.path+= qt_bundle

после этого это заявление

from PyQt5 import QtCore, QtWidgets

не выдает никакой ошибки

0 голосов
/ 29 марта 2019

Я считаю, что вы должны решить эти проблемы и избегать использования двух разных сред Python.Но вы могли бы добиться этого с pyenv .

Допустим, что 3.7.0 - это ваша системная версия Python.Сначала установите pyenv и 3.7.3 среду:

$ pyenv update
$ pyenv install 3.7.3
$ pyenv shell 3.7.3

Затем установите PyQt5 и другие требования с pip .

В конце концов, вы сможете переключаться на все установленные версии, вручную или в своем скрипте.

pyenv также поддерживает виртуальные среды.

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