2014-11-03 26 views
3

我真的想爲我的項目使用優秀的zerorpc,它使用IronPython,但它似乎不被支持。ZeroRPC和IronPython

我試圖下載源的郵政編碼爲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

我的問題(S):

  1. 是否有可能得到zerorpc與IronPython和如果是這樣運行的,請你給我怎麼辦呢提示嗎?
  2. 如果不是,那麼是否還有其他可以提供IronPython功能的等價包?這裏有一個列表:What is the current choice for doing RPC in Python?,但有誰知道這些工作是否與IronPython一起工作?

更新2 繼@PawelJasinski建議和他的更新pyzmq IronPython的-後臺,我曾嘗試以下:安裝IronPython的2.7.5b2

  1. 或更高版本
  2. 安裝來自http://zeromq.org/distro:microsoft-windows的32位版本zeromq
  3. 克隆ironpython-backend分支從https://github.com/paweljasinski/pyzmq/tree/ironpython-backend
  4. pyzmq目錄,運行ipy.exe setup.py install --user
  5. 克隆zerorpc從https://github.com/dotcloud/zerorpc-python
  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):

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 
+0

您將需要安裝用於編譯您的python版本的相同版本的visual studio。應該是2008年,但我可能是錯誤的。 – 2014-11-03 17:22:41

+0

@Puciek謝謝,我會檢查我的設置,看看是否有幫助。 – 2014-11-03 23:23:11

回答

2

ZeroRPC似乎是純粹的Python和基於pyzmq。在這種情況下,您可以嘗試使用IronPython的後端pyzmq​​。 https://github.com/paweljasinski/pyzmq/tree/ironpython-backend

  • 使用IronPython的2.7.5b2或從http://zeromq.org/distro:microsoft-windows
  • ZMQ的較新
  • 安裝32位版本的安裝pyzmq本身,克隆,比ipy.exe setup.py install --user。安裝應檢測您的ZMQ並選擇正確的DLL
  • 激活ctypes的後端,設置環境變量PYZMQ_BACKEND=zmq.backend.ctypes

UPDATE:ZeroRPC對gevent這是不是IronPython的下可用的依賴性,因此,上述說明僅是有效的for IronPython下的pyzmq

+0

謝謝 - 我已經更新了這個問題,但我認爲你的回答仍然相關。我會試一試。 @PawelJasinski – 2014-11-04 12:41:22

+0

我已經更新了我的問題和來自我最近嘗試的日誌。看起來像我需要Visual Studio 6. – 2014-11-04 22:40:14

+0

東西讓安裝程序認爲它是cpython,而不是ironpython。 – 2014-11-05 05:59:46

2

對於問題的第二部分。 pyro(及其依賴項serpent)支持IronPython和Jython。

警告:遠離IronPython 2.7.5b3 - 它有一個打破大蛇的bug。 2.7.4和2.7.5b2都可以。接下來的2.7.5有一個修復。