在Windows上安装pymatbridge

2024-07-01 08:31:54 发布

您现在位置:Python中文网/ 问答频道 /正文

在pymatbridge的0.3版本中,为ZMQ添加了一个附加的依赖项。因此,要安装此版本,您可能需要针对zeromq的dll编译一个messengermex扩展链接。然而,这在某些情况下是相当困难的。在

有没有人有在运行Windows的机器上从源代码安装pymatbridge的成功案例?在


Tags: 版本机器源代码链接windows情况zmq案例
3条回答

当我使用visualstudio作为我的标准IDE时,我四处摸索,得到了一个有效的构建过程。 我用过:

VS 2013
Matlab 2013b x64
Python 3.3 x64
ZeroMQ 4.0.4.

如果使用不同版本,请确保在必要时调整路径。在

使用Visual Studio生成messenger(2013)

    首先用空C++项目创建一个新的解决方案。在
  • 设置配置,例如x64 释放
  • 打开项目属性并设置以下内容:

Configuartion Properties -> General:

Target Name: messenger

Target Extension: .mexw64

Configuration Type: Dynamic Library (.dll)

Configuartion Properties -> VC++ Directories -> Include Directories:

MATLABPATH \extern\include

ZEROMQ PATH\include

Configuartion Properties -> VC++ Directories -> Library Directories:

MATLABPATH \extern\lib\win64\microsoft

ZEROMQ PATH \lib

Configuartion Properties -> Linker -> Input -> Additional Dependencies:

libmx.lib; libmex.lib; libmat.lib; libzmq-v120-mt-4_0_4.dll

Configuartion Properties -> Linker ->Command Line -> Additional Options:

/export:mexFunction

  • 添加messenger.c作为源文件
  • 建立图书馆
  • 复制到:PYTHONPATH\Lib\site packages\pymatbridge\matlab\

请注意:

我得到了一些不兼容的错误,原因是windows.h中已经存在的函数名。 解决方案是重命名:

  • 初始化
  • 听着
  • 回应
  • 清理

收件人:

  • 初始化
  • 李斯特马特
  • 响应材料
  • 清洁垫

这是我的设置和构建说明;很抱歉这是我为我的实验室笔记本写的一篇文章。在

规格:

Windows 8.1 (64 bit)
Anaconda 1.9.1
python 2.7.6
MinGW
TDM GCC 4.8.1

首先我安装了MS Visual C++ & SDK 7.1。安装失败的原因很早就是在成功安装SDK 7.1之前,我必须卸载许多Visual C++编译器版本和/或SDK。在

首先,使用Windows SDK 7.1 Command Prompt,我

^{pr2}$

并选择了新安装的编译器。对我来说

^{3}$

我选了号码1。 接下来,我下载并安装了一个预构建的64位ZMQ 3.2.4,并从zmq3.2.4安装位置C:\Program Files\ZeroMQ 3.2.4\liblibzmq-v90-mt_3_2_4.lib和{}从C:\Program Files\ZeroMQ 3.2.4\bin复制到messenger构建目录~\python-matlab-bridge\messenger\src。 我还将zmq.h和{}放入该目录,但目前还不确定它们是否真的必要。在

{{cd2},然后发布到

mex messenger.c libzmq-v90-mt-3_2_4.lib -O -output messenger

获得messenger.mexw64。 最后,在~\python-matlab-bridge directory中,使用MinGW,我只是

python setup.py install

这会自动将构建的包与egg信息一起放入我的Anaconda\Lib\site-packages。在Anaconda\Lib\site-packages\pymatbridge\matlab中有一个messenger.mexw64,它是由^{构建的。 我还复制了Anaconda\Lib\site-packages\pymatbridge\matlab所有其他的.dlls、.libs和{}s。 现在在iPython 2.7 console或iPython笔记本中,我可以

%load_ext pymatbridge

成功了。在

其他一些答案有点过时了,现在可以更容易地做到这一点(在Linux系统上仍然不会那么容易:/)。首先,pymatbridge现在在Windows上包含了一个二进制mex,它静态地链接到libzmq,所以实际上不必编译任何东西来让它工作。在

但是,如果您仍然想从源代码编译它,那么对于动态链接库来说,这个过程并不是太糟糕。在

1)从网站安装zeromq:http://zeromq.org/distro:microsoft-windows

2)将其中一个lib/libzmq-*.lib文件重命名为libzmq.lib库在ZeroMQ安装目录中

3)将ZeroMQ bin目录添加到路径中。在

4)编辑messenger/mexw64/本地.cfgmessenger中的文件指向zeromq安装目录(您需要同时更新ZMQ_INC和ZMQ_LIB)。还要确保MATLAB目录是正确的。在

5)在messenger目录中运行make.py matlab。这应该会建立起来信使.mexw64在

静态链接库在实践中很简单,但是由于zeromq(目前为止)没有为windows安装程序的静态链接提供.lib,因此您需要自己编译它。在您有了static.lib之后,构建信使.mexw64使用make matlab static

相关问题 更多 >

    热门问题