首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用带有Matlab系统函数的Python处理“没有模块名为library_name”的错误?

如何使用带有Matlab系统函数的Python处理“没有模块名为library_name”的错误?
EN

Stack Overflow用户
提问于 2016-12-01 18:18:34
回答 2查看 1.1K关注 0票数 1

当我尝试使用system命令在Matlab中运行Python脚本时,它会一直工作到导入基本Python中没有的内容为止。

例如,如果我有一个脚本test_1.py:

代码语言:javascript
运行
复制
import math as m
print 'good to go'
print m.exp(7)

然后运行Matlab命令:

代码语言:javascript
运行
复制
>>> system('python test_1.py')

我回来了

代码语言:javascript
运行
复制
good to go
1096.63315843

ans = 

    0

这就是我想要的。但是如果我将test_1.py修改为

代码语言:javascript
运行
复制
import math as m
import pandas as pd
print 'good to go'
print m.exp(7)

然后跑

代码语言:javascript
运行
复制
>>> system('python test_1.py')

我得到:

代码语言:javascript
运行
复制
>> system('python test_1.py')
Traceback (most recent call last):
  File "test_1.py", line 1, in <module>
    import pandas as pd
ImportError: No module named pandas

ans =

     1

当我在我的Bash终端中运行它们时,这两个脚本都运行得很好,而且问题似乎并不是Pandas库特有的问题。

我检查了Matlab的文档和一些其他StackOverflow问题,但我找不到任何与我的问题密切相关的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-01 18:45:49

使用默认设置安装Anaconda时,它将自动将Anaconda二进制文件添加到您的$PATH变量中。如果选择不添加,则可以通过将以下行添加到.bashrc (或Mac上的.bash_profile )文件中手动添加:

代码语言:javascript
运行
复制
export PATH="/home/username/anaconda/bin:$PATH" 

现在,在您的例子中,已经发生了这种情况(无论以哪种方式),因此Anaconda确实在bash shell中工作。然而,在Mac上,有两个不同的$PATH变量: bash路径和launchctl路径。如果打开终端或从终端运行程序,则使用bash路径。当您运行程序“普通方式”时,使用launchctl路径,这是使用launchctl命令的。现在,您的bash路径是正确的,但您的launchctl路径不是-这就是为什么它工作在一个终端,但不是从MATLAB。

可以将launchctl路径设置为与bash路径相同,方法是向.bash_profile添加以下行

代码语言:javascript
运行
复制
launchctl setenv PATH $PATH

这会更改所有程序的路径设置,这可能是不可取的。因此,在脚本开始时,使用path函数将Anaconda二进制文件添加到MATLAB中的路径可能是最简单和最安全的:

代码语言:javascript
运行
复制
path('Users/JackStClaire/anaconda/bin/', path)

通过将其添加到$PATH变量的开头,确保它使用的是Anaconda python,而不是系统python

票数 2
EN

Stack Overflow用户

发布于 2017-10-21 09:57:32

在Matlab脚本中,您可以简单地设置Python用来与其库通信的环境,以确保它是正确的。

代码语言:javascript
运行
复制
PATH_PYTHON = '/Users/matteofabris/anaconda2/lib/python2.7/site-packages/';
setenv('PYTHONPATH', PATH_PYTHON);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40917704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档