试着运行 rpcz-python 的 example。过程记录如下。

假设protobuf-py已经按照protobuf的安装说明安装了。
发现 protobuf-2.5.0版的python包是python2的,没有找到python3的。
试着2to3.py转换一下,结果转换后无法安装。
只好将python3.3换成python2.7

python2.7的mimetypes.py有错误,注册表中HKEY_CLASSES_ROOT有中文的扩展名时,
安装setuptools失败,参考 http://www.oschina.net/question/1409342_134600

先编译 rpz, 将生成的
protoc-gen-cpp_rpcz.exe
protoc-gen-python_rpcz.exe
复制到系统搜索目录,如与protoc.exe放在一起。

进入 rpcz 的 python 目录,运行
python setup.py install

出现如下的各种错误:
../include\rpcz/connection_manager.hpp(21) : fatal error C1083: Cannot open incl
ude file: 'boost/function.hpp': No such file or directory
../include\rpcz/macros.hpp(20) : fatal error C1083: Cannot open include file: 'g
oogle/protobuf/stubs/common.h': No such file or directory
../include\rpcz/rpc.hpp(24) : fatal error C1083: Cannot open include file: 'rpcz
/rpcz.pb.h': No such file or directory
LINK : fatal error LNK1181: cannot open input file 'rpcz.lib'
LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-1_54.lib'

直接改了setup.py如下。

    ext_modules=[
        Extension("rpcz.pywraprpcz", ["cython/pywraprpcz.cpp"],
                  libraries=["rpcz", "libprotobuf", "libzmq"],
                  include_dirs=['../include', '../build/src',
                      'D:/Boost/include/boost-1_54',
                      'G:/workspace/rpcz_jinq/src',
                      'D:/LibSrc/protobuf-2.5.0/vsprojects/include'],
                  library_dirs=['../build/deps/lib', '../build/src/rpcz',
                      'D:/Boost/lib',
                      'G:/workspace/rpcz_jinq/src/rpcz/Release',
                      'D:/LibSrc/zeromq-4.0.3/builds/msvc/Release',
                      'D:/LibSrc/protobuf-2.5.0/vsprojects/Release'],
                  language='c++')
    ],

不知道如何做成通用的脚本。
rpcz原来应该是建立一个固定位置的build目录,其中有deps目录,包含所有库。
这就要求cmake的构建目录固定为build.
 
python2.7是用VC2008编译的,用VC2010编译python扩展会有问题。
会报错:
error: Unable to find vcvarsall.bat
强制使用VC2010:
SET VS90COMNTOOLS=%VS100COMNTOOLS%
参考:http://stackoverflow.com/questions/2817869/error-unable-to-find-vcvarsall-bat

最后进入 examples\python,先 generate_protos.gy 生成消息和接口,然后运行 server, client.
运行时需要 libzmq.dll, rpcz.dll.

如何运行 rpcz python example的更多相关文章

  1. python如何通过windows命令行运行一个python程序文件?

    python如何通过windows命令行运行一个python程序文件? cmd 进入到py文件对应目录下或者直接在上面的文件地址栏输入cmd,敲入回车 定位到对应的目录下 输入python xxx.p ...

  2. Python 检查当前运行的python版本 python2 python3

    检查当前运行的python版本,可以帮助程序选择运行python2还是python3的代码 import sys if sys.version > '3': PY3 = True else: P ...

  3. 基于Django的独立运行的python脚本开发

    Django框架很方便,比如其方便的ORM,如果写基于Django的独立运行脚本,主要在脚本前面加上以下代码: import sys,os,django sys.path.append(os.path ...

  4. 解决Windows Server 2012 R2 Datacenter云服务器无法运行opencv python程序的问题

    写了个基于opencv的python程序,pyinstaller 32位机打包后在win7/win10 32/64正常运行,在Windows Server 2012 R2 Datacenter云服务器 ...

  5. 使用PyCharm创建并运行一个Python项目

    (1)首先,在欢迎界面点击“Create New Project”: (2)在“New Project“左侧面板点击”Pure Python“,右侧Location选择自己要创建项目的路径(一般情况, ...

  6. python的re模块一些方法 && Tkinter图形界面设计 && 终止python运行函数 && python读写文件 && python一旦给字符串赋值就不能单独改变某个字符,除非重新给变量赋值

    Tkinter图形界面设计见:https://www.cnblogs.com/pywjh/p/9527828.html#radiobutton 终止python运行函数: 采用sys.exit(0)正 ...

  7. 查看当前正在运行的python进程

    ps -ef |grep Python kill -9 pid  

  8. Notepad++一键编译运行(Python、Java、C++)

    Python 需要事先安装Python配置好环境变量.建议使用Anaconda,方便. 在Notepad按F5,输入如下 cmd /k chdir /d $(CURRENT_DIRECTORY) &a ...

  9. python os.startfile python实现双击运行程序 python监控windows程序 监控进程不在时重新启动

    用python监控您的window服务 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://world77.blog.51cto.co ...

随机推荐

  1. Swift基础之实现选择图片时,出现类似于ActionSheet的样式

    之前看到过有APP在选择图片时,调用手机相册时,将手机相册做成了左右滑动选择的效果,这次展示的就是这种样式,用OC语言已经有人实现过类似的代码,在这里写的仅仅是效果展示的代码调用,具体代码,可以自己研 ...

  2. Java对象的内存布局以及对象所需内存大小计算详解

    1. 内存布局 在HotSpot虚拟机中,对象的内存布局可以分为三部分:对象头(Header). 实例数据(Instance Data)和对齐填充(Padding). 1) 对象头(Header): ...

  3. Gradle 1.12用户指南翻译——第46章. Java 库发布插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  4. GC对象分配规则

    1.对象优先分配在Eden区,如果Eden区没有足够的空间时,虚拟机执行一次Minor GC. 2.大对象直接进入老年代(大对象是指需要大量连续内存空间的对象).这样做的目的是避免在Eden区和两个S ...

  5. 豌豆夹Redis解决方案Codis安装使用

    豌豆夹Redis解决方案Codis安装使用 1.安装 1.1 Golang环境 Golang的安装非常简单,因为官网被墙,可以从国内镜像如studygolang.com下载. [root@vm roo ...

  6. pdflush进程详解

    一.简介     由于页高速缓存的缓存作用,写操作实际上会被延迟.当页高速缓存中的数据比后台存储的数据更新时,那么该数据就被称做脏数据.在内存中累积起来的脏页最终必须被写回磁盘.在以下两种情况发生时, ...

  7. Dynamics CRM 本地插件注册器连CRMAn unsecured or incorrectly secured fault was received from the other party

    今天遇到个问题,在本地打开插件注册器连接到远程CRM服务器时报如下问题 但我在CRM服务器上连接注册器是可以打开的,所以不存在账号权限这类的问题了(当然我用的是超管的账号也不可能存在),最后查询得知是 ...

  8. sklearn:最近邻搜索sklearn.neighbors

    http://blog.csdn.net/pipisorry/article/details/53156836 ball tree k-d tree也有问题[最近邻查找算法kd-tree].矩形并不是 ...

  9. Retrofit2.0+RxJava+Dragger2实现不一样的Android网络架构搭建

    Tamic :csdn http://blog.csdn.net/sk719887916 众所周知,手机APP的核心就在于调用后台接口,展示相关信息,方便我们在手机上就能和外界交互.所以APP中网络框 ...

  10. (一)ROS系统入门 Getting Started with ROS 以Kinetic为主更新 附课件PPT

    ROS机器人程序设计(原书第2版)补充资料 教案1 ROS Kinetic系统入门 ROS Kinetic在Ubuntu 16.04.01 安装可参考:http://blog.csdn.net/zha ...