Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MATLAB系统命令与pyversion不同_Python_Matlab_Miniconda - Fatal编程技术网

Python MATLAB系统命令与pyversion不同

Python MATLAB系统命令与pyversion不同,python,matlab,miniconda,Python,Matlab,Miniconda,我使用的是MatlabR2019B,在Linux机器上安装并激活了miniconda3。 我已经在命令行conda activate上激活了conda,然后启动了MATLAB(没有GUI)。我发现系统功能提供的内容与pyversion显示的内容有所不同: >> system('which python') /usr/bin/python ans = 0 >> pyversion version: '3.8' executable:

我使用的是MatlabR2019B,在Linux机器上安装并激活了miniconda3。 我已经在命令行
conda activate
上激活了conda,然后启动了MATLAB(没有GUI)。我发现
系统
功能提供的内容与
pyversion
显示的内容有所不同:

>> system('which python')
/usr/bin/python

ans =

     0

>> pyversion

       version: '3.8'
    executable: '/home/XYZ/miniconda3/bin/python'
       library: '/home/XYZ/miniconda3/lib/libpython3.8.so'
          home: '/home/XYZ/miniconda3'
      isloaded: 0
我检查了
genenv('PATH')
和…/miniconda3/bin以及…/miniconda3/condabin是否在路径中,因为前两个条目是预期的

在命令行上执行
哪个python
将给出miniconda3二进制文件

miniconda3路径中的其他一些二进制文件也有类似的观察结果

Q:如何让MATLAB的
系统
识别miniconda3二进制文件?

---编辑---

启动MATLAB之前,设置导出MATLAB_SHELL=/bin/bash,显示具有系统功能的正确二进制文件。
然后问题变成了为什么在设置MATLAB_SHELL变量之前,
getenv
system
不一致?

“MATLAB 97”?MATLAB有一个内部版本号,但还没有那么高。“R2019b”部分通常用于传递版本号。您需要确保miniconda二进制目录位于路径上的/usr/bin目录之前。MATLAB并不总是保留shell的路径。谢谢@CrisLuengo。正如我在文章中提到的,miniconda3路径显示为路径中的前两个条目。是的,但是现在做
system('echo$PATH')
system
命令启动一个新的shell,它可能从MATLAB进程继承环境变量,也可能不继承。因此,在本例中,解决方案是执行
system('PATH=/home/XYZ/miniconda3/bin/:$PATH which python')
令人困惑的是(如编辑中所述),我希望
genenv('PATH')
为我提供将在
system
调用将使用的任何shell中使用的路径。你的评论起到了作用,但我发现这些函数的行为不一致。