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

posted @ 2022-03-31 22:58  starc的miao  阅读(810)  评论(0)    收藏  举报