Ubuntu Qtcreator c++调用python报错

调用时候,报错:
(modpython:13107): Gtk-ERROR **: 20:32:18.627: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

原因:
c++中用了一个opencv调用了一个版本。
python中用了另一个版本,同时加载出错。

解决方法:这里有说明

本人使用的是第二个,第一个没实验。
第二个,需要放在import的最前面

import matplotlib
matplotlib.use('Agg')
### 配置 UbuntuQt 调用 Miniconda 安装的 Python 为了使 Qt 正确调用 Miniconda 中安装的 Python 版本,在配置过程中需要注意几个关键点。 #### 设置环境变量 确保 Miniconda 的 `bin` 文件夹已添加到系统的 PATH 变量中。这可以通过编辑用户的 `.bashrc` 或者 `.zshrc` 文件来完成: ```bash export PATH="/home/user/miniconda3/bin:$PATH" ``` 此操作使得命令行工具能够找到并执行 Miniconda 下载和管理的各种包以及不同版本的 Python 解释器[^2]。 #### 创建专用 Conda 环境 建议创建一个新的 conda 环境专门用于该项目,这样可以更好地控制依赖关系而不影响其他项目: ```bash conda create --name my_qt_env python=3.8 conda activate my_qt_env ``` 接着在这个环境中安装所需的库比如 NumPy 和 PyTorch: ```bash conda install numpy pytorch ``` #### 修改 Qt Creator 构建设置 打开 Qt Creator 并导航至项目的构建选项卡,指定自定义编译步骤以激活正确的 conda 环境之前运行脚本。可以在 Pro 文件里加入如下内容以便每次启动前自动加载特定的虚拟环境: ```pro QMAKE_PRE_LINK = "source /path/to/activate_my_qt_env.sh && " ``` 其中 `/path/to/activate_my_qt_env.sh` 是一个 shell 脚本文件的位置,该文件包含了激活对应 conda 环境所需要的指令。 另外一种方法是在 C++ 代码内部直接通过 QProcess 来启动外部进程的方式显式地指明要使用的 Python 解析器路径及其参数列表,从而绕过默认解析器的选择逻辑。 对于遇到 `import_array()` 报错的情况,通常是因为缺少必要的头文件或者是动态链接库未能正确加载所致。确认已经按照官方文档说明完成了所有必需组件的安装,并且这些资源能够在编译期间被访问到是非常重要的[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值