在一个脚本中运行两个版本的Python。可能?

时间:2019-03-29 09:57:35

标签: python python-3.x virtualenv

我有一个纯Python 3.7.3和QGIS软件包随附的另一个Python 3.7.0。

我将默认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.3中运行的Qt函数从3.7.0运行脚本。但是我该如何输入脚本。 我试图测试virtualenv,但似乎不想设置一个临时环境。

2 个答案:

答案 0 :(得分:0)

我相信您应该处理这些问题,并避免使用2种不同的Python环境。但是您可以使用 pyenv 来实现。

假设3.7.0是您的系统Python版本。首先,安装 pyenv 和一个 3.7.3 环境:

$ pyenv update
$ pyenv install 3.7.3
$ pyenv shell 3.7.3

然后,用 pip 安装 PyQt5 和其他要求。

最终,您将能够手动或在脚本中切换到每个已安装的版本。

pyenv 也支持虚拟环境。

答案 1 :(得分:0)

做到。

在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

不会引发任何错误