首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZeroRPC和IronPython

ZeroRPC和IronPython
EN

Stack Overflow用户
提问于 2014-11-03 17:20:29
回答 2查看 717关注 0票数 3

我真的很想在我使用IronPython的项目中使用优秀的IronPython,但它似乎不受支持。

我已经尝试下载zerorpc源代码的zip并运行

代码语言:javascript
复制
"C:\Program Files (x86)\IronPython 2.7\ipy.exe" setup.py install

但我在路上看到了这个:

代码语言:javascript
复制
warning: build_py: byte-compiling is disabled, skipping.

这与答案并不矛盾:C#和CPython之间的快速可伸缩RPC

我的问题是:

  1. 有可能在IronPython中运行zerorpc吗?如果可以,请给我一个提示。
  2. 如果没有,那么还有其他类似的包可以在IronPython中提供功能吗?这里有一个列表:当前在Python中执行RPC的选择是什么?,但是有人知道这些是否与IronPython一起工作吗?

Update 2遵循@PawelJasinski的建议和他对pyzmq ironpython-后端的更新,我尝试了以下方法:

  1. 安装了IronPython 2.7.5b2或更高版本
  2. http://zeromq.org/distro:microsoft-windows安装32位版本的zeromq
  3. ironpython-backend中克隆https://github.com/paweljasinski/pyzmq/tree/ironpython-backend分支
  4. pyzmq dir中,运行ipy.exe setup.py install --user
  5. https://github.com/dotcloud/zerorpc-python克隆zerorpc
  6. zerorpc-python中,运行ipy.exe setup.py install --user
  7. 设置环境变量:set PYZMQ_BACKEND=zmq.backend.ctypes
  8. 尝试使用https://github.com/dotcloud/zerorpc-python中的“冷却器”类示例,运行在ipy.exe -X:Frames cooler.py

(cooler.py):

代码语言:javascript
复制
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()

现在我看到了这个错误:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2014-11-04 00:59:09

ZeroRPC似乎是纯python,是基于pyzmq的。在本例中,您可以尝试用于IronPython的pyzmq IronPython后端。https://github.com/paweljasinski/pyzmq/tree/ironpython-backend

  • 使用IronPython 2.7.5b2或更高版本
  • http://zeromq.org/distro:microsoft-windows安装32位版本的zmq
  • 安装pyzmq本身,克隆,而不是ipy.exe setup.py install --user。安装应该检测到您的zmq并选择正确的dll。
  • 激活ctype后端,设置环境变量PYZMQ_BACKEND=zmq.backend.ctypes

更新: ZeroRPC依赖于在IronPython下不可用的gevent,因此上述指令仅对IronPython下的pyzmq有效。

票数 2
EN

Stack Overflow用户

发布于 2014-11-11 14:19:32

问题的第二部分。吡咯 (及其依赖项)支持IronPython和Jython。

警告:远离IronPython 2.7.5b3 -它有一个破坏蛇的错误。2.7.4和2.7.5b2都可以。接下来的2.7.5有一个修正。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26719449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档