在pymatbridge的0.3版本中,为ZMQ添加了一个额外的依赖项。要安装此版本,您可能需要编译一个链接到zeromq的messenger
mex扩展名。然而,在某些情况下,这很难做到。
有没有人有在运行Windows的计算机上从源安装pymatbridge的成功案例?
答案 0 :(得分:4)
这是我的设置和构建说明;为冗长道歉 - 这是我为实验室笔记本写的一篇文章。
规格:
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
。很早就安装失败的可能原因是存在其他Visual C ++编译器版本和/或SDK - 在成功安装SDK 7.1之前,我必须卸载其中的一些。
首先,使用Windows SDK 7.1 Command Prompt
,我
mex -setup
并选择新安装的编译器。在我的情况下
Select a compiler:
[1] Microsoft Software Development Kit (SDK) 7.1 in
C:\Program Files (x86)\Microsoft Visual Studio 10.0
[0] None
Compiler:
我选择了号码1
。
接下来,我下载并安装了预先构建的64位ZMQ 3.2.4
,并从ZMQ 3.2.4安装位置C:\Program Files\ZeroMQ 3.2.4\lib
,我从libzmq-v90-mt_3_2_4.lib
复制了libzmq-v90-mt_3_2_4.dll
和C:\Program Files\ZeroMQ 3.2.4\bin
到messenger构建目录~\python-matlab-bridge\messenger\src
。
我还将zmq.h
和zmq_utils.h
放入该目录,但截至目前我不确定它们是否真的有必要。
然后,在Windows SDK 7.1 Command Prompt
中,我进入messenger\src
目录并发出
mex messenger.c libzmq-v90-mt-3_2_4.lib -O -output messenger
获取messenger.mexw64
。
最后,在~\python-matlab-bridge directory
中,使用MinGW
,我只是
python setup.py install
这会自动将构建的包放入我的Anaconda\Lib\site-packages
以及鸡蛋信息。在Anaconda\Lib\site-packages\pymatbridge\matlab
中,messenger.mexw64
之前构建了~\python-matlab-bridge\messenger\src
。
我还复制了Anaconda\Lib\site-packages\pymatbridge\matlab
所有其他.dll
s,.lib
和.h
s以获得良好衡量标准。
现在在iPython 2.7 console
或iPython Notebook中,我可以
%load_ext pymatbridge
成功。
答案 1 :(得分:3)
当我使用Visual Studio作为我的标准IDE时,我摆弄并获得了一个有效的构建过程。 我用过:
VS 2013
Matlab 2013b x64
Python 3.3 x64
ZeroMQ 4.0.4.
如果您使用不同的版本,请确保在必要时调整路径。
messenger
配置属性 - >一般:
目标名称:信使
目标扩展名:.mexw64
配置类型:动态库(.dll)
配置属性 - > VC ++目录 - >包括目录:
MATLABPATH \ extern \ include
ZEROMQ PATH \ include
配置属性 - > VC ++目录 - >图书馆目录:
MATLABPATH \ extern \ lib \ win64 \ microsoft
ZEROMQ PATH \ lib
配置属性 - >链接器 - >输入 - >其他依赖关系:
libmx.lib; libmex.lib; libmat.lib; libzmq-V120-MT-4_0_4.dll
配置属性 - >链接器 - >命令行 - >其他选项:
/出口:mexFunction
messenger.c
添加为源文件请注意:
由于windows.h中已存在的函数名称,我遇到了一些不兼容的错误。 解决方案是重命名:
为:
答案 2 :(得分:1)
其他一些答案有点过时,现在可以更轻松地完成这些工作(在Linux系统上仍然不会那么容易:/)。首先,pymatbridge现在在Windows上包含一个二进制mex,它与libzmq静态链接,所以你不应该为了让它工作而实际编译任何东西。
但是,如果您仍想从源代码编译它,那么对于动态链接库来说,这个过程并不算太糟糕。
1)从网站安装zeromq:http://zeromq.org/distro:microsoft-windows
2)将一个lib / libzmq - * .lib文件重命名为ZeroMQ安装目录中的libzmq.lib
3)将ZeroMQ bin目录添加到路径中。
4)编辑messenger中的messenger / mexw64 / local.cfg文件以指向zeromq安装目录(您需要同时更新ZMQ_INC和ZMQ_LIB)。还要确保MATLAB目录正确。
5)在messenger目录中运行make.py matlab
。这应该构建messenger.mexw64
静态链接库在实践中很简单,但由于zeromq(截至目前)没有为Windows安装程序提供静态链接的.lib,因此您需要自己编译。拥有静态.lib后,使用make matlab --static