QT-linux-调用conda环境
-
尝试了一下午终于可以在linux环境下,调用conda的环境了,这个是跑深度学习模型的基础环境。
直接进入正题: -
根据上一篇文章,在ubuntu 20.04环境下,安装好QT。
配置QT编译器的路径
- 网上有资料涉及,但是写的不是很清楚,不方便实现。
- include <Python.h>然后开始编程,调用python
linux C 运行conda
- 直接在QT程序中添加下面的代码即可,
system("python a.py");
报错:sh: 1: python: not found
修改:system("python3 a.py");, 成功 - 失败原因分析:QT程序运行调用的shell,没有python的环境变量,只有python3的环境变量路径。
运行python3 的脚本,运行conda
- python的脚本中写,import torch or cv2
- 报错会说找不到torch,cv2
- 原因是当前的python是linux系统自带的python环境,并不是anaconda创建的环境,所以不会有torch等库。
system("conda list")
- 报错:sh: 1: conda: not found
- 原因同上,当前shell的解释器,没有找到conda执行的路径的环境变量
通过shell脚本
- 通过上面的分析,知道需要进入的是conda创建的虚拟环境,并且是通过shell脚本来实现进入conda环境,直接的通过system进不去,所以创建一个shell脚本。
PS:可以试一下直接用system再结合下面成功的代码的方法。
方法 1
#!/bin/sh
conda activate your_env
BUG:a.sh: 行 5: conda:未找到命令
方法 2
- 使用 whereis conda 找到conda的命令地址
#!/bin/sh
/opt/anaconda3/bin/conda env list
BUG:usage: conda [-h] [-V] command ... conda: error: argument command: invalid choice: '/home/amax/.conda/envs/pytorch18_py37' (choose from 'clean', 'compare', 'config', 'create', 'help', 'info', 'init', 'install', 'list', 'package', 'remove', 'uninstall', 'run', 'search', 'update', 'upgrade')
方法 3
- source在linux环境下用作激活环境
#!/bin/sh
source /opt/anaconda3/bin/conda env list
BUG:/opt/anaconda3/bin/conda: 行 3: import:未找到命令 /opt/anaconda3/bin/conda: 行 6: 未预期的符号“sys.argv”附近有语法错误 /opt/anaconda3/bin/conda: 行 6: if len(sys.argv) > 1 and sys.argv[1].startswith('shell.') and sys.path and sys.path[0] == :
方法 4
- 直接用source代替conda
#!/bin/sh
source activate /home/amax/.conda/envs/pytorch18_py37 && python a.py
BUG:a.sh: 行 5: activate: 没有那个文件或目录
方法 5
- 用whereis activate找到命令的地址,指定他的位置,不然shell解释器找不到他
#!/bin/sh
source /opt/anaconda3/bin/activate /home/amax/.conda/envs/pytorch18_py37 && python a.py
- 成功,
![image]()
a.py
import os
#os.system("pwd")
print("pythonththth")
#os.system('conda list')
import cv2
import torch
print(torch.__version__)
参考:
https://blog.csdn.net/u013171226/article/details/118209462

https://www.zhihu.com/question/322406344


浙公网安备 33010602011771号