java调用python时怎样使用python的pandas模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java调用python时怎样使用python的pandas模块相关的知识,希望对你有一定的参考价值。

参考技术A 安装pandas1.Anaconda安装pandas、Python和SciPy最简单的方式是用Anaconda。Anaconda是关于Python数据分析和科学计算的分发包。2.Miniconda使用Anaconda会安装一百多个依赖包,如果想灵活控制安装的依赖包或带宽有限,使用Miniconda是个不错的选择。Conda是个包管理器,Anaconda就是建立在它的基础上。Conda不只跨平台还与语言无关,与pip和virtualenv相结合的作用相似。Miniconda允许先创建包含Python的安装包,然后用conda安装其他的依赖包。3.Pypipandas可以通过pip安装,但要安装相关的依赖包。pipinstallpandas4.包管理器可以用linux的包管理器进行安装,如sudoapt-getinstallpython-pandaszypperinpython-pandas本回答被提问者采纳 参考技术B 看清楚问题好吗? 参考技术C 可以使用jython

从 MATLAB Compiler 应用程序调用 python 时无法调用 python 库

【中文标题】从 MATLAB Compiler 应用程序调用 python 时无法调用 python 库【英文标题】:Can't call python library when calling python from MATLAB Compiler application 【发布时间】:2017-11-08 08:53:56 【问题描述】:

我正在尝试从 MATLAB 编译的应用程序(使用 MATLAB 编译器)运行 python 脚本,但由于某种奇怪的原因,它无法从 scipy 中找到任何导入。当我尝试调用任何 scipy 方法时,它给了我这个错误

Python Error: ImportError: cannot import name sigtools

如果我直接从 Python 或 MATLAB 调用相同的代码,它就可以工作。但不是来自 MATLAB 编译器。

另外一件奇怪的事情是,从 MATLAB 中调用 python 看到的 python 路径是正确的,那是什么原因造成的呢?

编辑 我的蟒蛇路径

/usr/lib/python2.7
/usr/lib/python2.7/plat-x86_64-linux-gnu
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages/PILcompat
/usr/lib/python2.7/dist-packages/gtk-2.0

我有文件sigtools.x86_64-linux-gnu.so

/usr/lib/python2.7/dist-packages/scipy/signal/

【问题讨论】:

信息不足。 sigtools在哪里,你是什么sys.path,你有没有安装sigtools等等等等。 我的 /usr/lib/python2.7/dist-packages/scipy/signal/ 目录中有这个文件 sigtools.x86_64-linux-gnu.so,所以我假设它是安装。另一个信息是,如果我直接从 python 调用相同的代码,它可以工作,如果我直接从 MATLAB 调用相同的代码,而不是它的 MATLAB 编译器版本。感谢您的帮助 如果它是您声称的位置,那么很明显sys.path 不会找到它。但是import scipy.signal.sigtools 应该可以工作。 我猜你在 Linux,你能在你的 Linux 主机中找到 sigtools.so 库吗? 它给了我这个漂亮的错误 Python 错误:ImportError: cannot import name sigtools =(,有没有办法直接给它我的 sigtools.so 的路径? 【参考方案1】:

我找到了问题的解决方案。 MATLAB运行环境提供的libstdc++版本太旧,无法导入一些python库。它应该libstdc++.so.6 version 3.4.21。我已将文件 libstdc++.so.6 替换为 v901/sys/os/glnxa64/ 中的更新版本 (3.4.21),这是 MATLAB 运行时目录。

【讨论】:

【参考方案2】:

回答您的问题。

直接到你机器中sigtools.solib所在的位置,做python -c "import sigtools",然后在你的文件中,就可以导入了。

【讨论】:

你能解释一下为什么这应该有效吗?您所做的只是导入文件以创建 .pyc 文件。这可以从任何目录完成,此外,代码已被声明为直接适用于 Python 和 Matlab,所以我看不出这将如何解决问题。 这在 MATLAB 中不起作用,我说它起作用,但是当我只使用 python 时,从 matlab 端它给了我 Python 错误:ImportError: cannot import name sigtools。似乎 MATLAB 在开始其 python 调用时弄乱了 python 路径中的某些内容。 检查 MATLAB 运行时目录(需要在没有 MATLAB 的情况下运行可执行文件),我发现了一些 python 文件,其中一个引起了我的注意。似乎是 python 代码查询 python 以获取初始化嵌入式解释器所需的信息。里面有一个叫LibraryFinder的类,可能里面有bug。

以上是关于java调用python时怎样使用python的pandas模块的主要内容,如果未能解决你的问题,请参考以下文章

为啥Python调用方法,有的前面加类名,有的不加?

Python中子类怎样调用父类方法

Python中子类怎样调用父类方法

怎样让Python脚本与C++程序互相调用

怎样用python调用vc++编出来的win32 DLL

python中怎样判断一个文件的类型