QGIS Python插件开发:如何安装cx_Oracle等Python包(无需管理员权限)
无需管理员权限为QGIS Python插件安装cx_Oracle等依赖包
本地开发环境操作步骤
- 找到QGIS自带的Python解释器:
Windows用户直接打开QGIS安装目录里的OSGeo4W Shell,里面已经配置好QGIS的Python环境,直接用python命令即可;macOS路径一般是/Applications/QGIS3.app/Contents/MacOS/bin/python3;Linux可以通过QGIS启动的终端直接调用python3。 - 用
--user参数安装依赖:
在终端执行命令:
这个参数会把包安装到当前用户的个人站点目录(比如Windows的python -m pip install --user cx_OracleC:\Users\[你的用户名]\AppData\Roaming\Python\PythonXX\site-packages),完全不需要管理员权限,QGIS会自动识别这个目录的包。 - 验证安装:
打开QGIS的Python控制台,输入:
能正常打印版本号就说明安装成功。import cx_Oracle print(cx_Oracle.version)
客户端电脑部署方案
如果要让客户端也不用管理员权限就能用插件,有两种可选方式:
方式1:指导客户端自行安装
让客户端打开QGIS的OSGeo4W Shell(Windows)或对应终端,执行和本地开发一样的命令:python -m pip install --user cx_Oracle,步骤和上面一致。
方式2:插件自带依赖包(免客户端操作)
不想让客户端手动安装的话,把依赖包打包到插件里:
- 本地执行
pip download cx_Oracle --dest ./deps下载依赖的wheel包 - 解压wheel包,把里面的
cx_Oracle文件夹复制到插件目录下的新建libs文件夹中 - 在插件的
__init__.py开头添加路径配置:
这样QGIS加载插件时会优先读取插件自带的依赖,客户端无需额外操作。import os import sys plugin_dir = os.path.dirname(os.path.realpath(__file__)) sys.path.insert(0, os.path.join(plugin_dir, 'libs'))
额外注意:Oracle客户端库
cx_Oracle需要Oracle客户端库支持,同样可以无需管理员权限解决:
- 下载Oracle Instant Client Basic Lite(免安装版),解压后把里面的dll/so文件放到插件的
libs或单独的instantclient目录 - 在插件
__init__.py里添加环境变量配置:
这样客户端不用单独安装Oracle客户端,直接用插件自带的文件即可。import os plugin_dir = os.path.dirname(os.path.realpath(__file__)) oracle_client_path = os.path.join(plugin_dir, 'instantclient') os.environ['PATH'] = oracle_client_path + os.pathsep + os.environ['PATH']
内容的提问来源于stack exchange,提问作者am2
相关产品推荐
相关产品推荐

