【发布时间】:2014-12-30 09:59:58
【问题描述】:
我真的很想在我使用 IronPython 的项目中使用出色的 zerorpc,但它似乎不受支持。
我已尝试下载zerorpc 的源代码并运行
"C:\Program Files (x86)\IronPython 2.7\ipy.exe" setup.py install
但我一路上看到了这一点:
warning: build_py: byte-compiling is disabled, skipping.
这与答案并不矛盾:Fast and scalable RPC between C# and CPython。
我的问题:
- 是否可以让 zerorpc 与 IronPython 一起运行,如果可以,请告诉我如何操作?
- 如果没有,那么是否有任何其他等效包可以提供 IronPython 中的功能?这里有一个列表:What is the current choice for doing RPC in Python?,但有谁知道这些是否适用于 IronPython?
更新 2 根据@PawelJasinski 的建议和他对 pyzmq ironpython-backend 的更新,我尝试了以下方法:
- 已安装 IronPython 2.7.5b2 或更高版本
- 从http://zeromq.org/distro:microsoft-windows 安装了 32 位版本的 zeromq
- 从https://github.com/paweljasinski/pyzmq/tree/ironpython-backend 克隆
ironpython-backend分支 - 在
pyzmq目录中,运行ipy.exe setup.py install --user - 从https://github.com/dotcloud/zerorpc-python克隆zerorpc
- 在
zerorpc-python中,运行ipy.exe setup.py install --user - 设置环境变量:
set PYZMQ_BACKEND=zmq.backend.ctypes - 尝试使用https://github.com/dotcloud/zerorpc-python 中的“Cooler”类示例,使用
ipy.exe -X:Frames cooler.py运行
(cooler.py):
class Cooler(object):
""" Various convenience methods to make things cooler. """
def add_man(self, sentence):
""" End a sentence with ", man!" to make it sound cooler, and
return the result. """
return sentence + ", man!"
def add_42(self, n):
""" Add 42 to an integer argument to make it cooler, and return the
result. """
return n + 42
def boat(self, sentence):
""" Replace a sentence with "I'm on a boat!", and return that,
because it's cooler. """
return "I'm on a boat!"
import zerorpc
s = zerorpc.Server(Cooler())
s.bind("tcp://0.0.0.0:4242")
s.run()
现在我看到了这个错误:
Traceback (most recent call last):
File "C:\Users\nlindop\AppData\Roaming\Python\IronPython27\site-packages\zmq\backend\select.py", line 26, in select_backend
File "C:\Users\nlindop\AppData\Roaming\Python\IronPython27\site-packages\zmq\backend\ctypes\__init__.py", line 26, in <module>
File "C:\Users\nlindop\AppData\Roaming\Python\IronPython27\site-packages\zmq\backend\ctypes\constants.py", line 16, in <module>
ImportError: No module named ZMQ
【问题讨论】:
-
您需要安装与用于编译您的 python 版本相同的 Visual Studio 版本。应该是 2008 年,但我可能错了。
-
@Puciek 谢谢,我会检查我的设置,看看是否有帮助。
标签: python ironpython rpc zeromq