簡體   English   中英

Python ImportError:沒有名為zhelpers的模塊

[英]Python ImportError: No module named zhelpers

我正在嘗試運行下面給出的程序(我從zeromq教程復制而來)。

Python ImportError: No module named zhelpers

我嘗試安裝

sudo apt-get install zhelpers
sudo pip install zhelpers

正在給出以下錯誤。

E: Unable to locate package zhelpers
OR
No distributions at all found for zhelpers

有人可以指出我應該安裝的模塊的確切名稱是什么。

如何解決此錯誤。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This shows how to capture data using a pub-sub proxy
#
import time
from random import randint
from string import uppercase
from threading import Thread
import zmq
from zmq.devices import monitored_queue
from zhelpers import zpipe

# The subscriber thread requests messages starting with
# A and B, then reads and counts incoming messages.
def subscriber_thread():
    ctx = zmq.Context.instance()
    # Subscribe to "A" and "B"
    subscriber = ctx.socket(zmq.SUB)
    subscriber.connect("tcp://localhost:6001")
    subscriber.setsockopt(zmq.SUBSCRIBE, b"A")
    subscriber.setsockopt(zmq.SUBSCRIBE, b"B")
    count = 0
    while True:
        try:
            msg = subscriber.recv_multipart()
        except zmq.ZMQError as e:
            if e.errno == zmq.ETERM:
                break # Interrupted
    else:
        raise
        count += 1
        print ("Subscriber received %d messages" % count)
# .split publisher thread

# The publisher sends random messages starting with A-J:
def publisher_thread():
    ctx = zmq.Context.instance()
    publisher = ctx.socket(zmq.PUB)
    publisher.bind("tcp://*:6000")

    while True:
        string = "%s-%05d" % (uppercase[randint(0,10)], randint(0,100000))
        try:
            publisher.send(string)
        except zmq.ZMQError as e:
            if e.errno == zmq.ETERM:
                break # Interrupted
    else:
        raise
        time.sleep(0.1) # Wait for 1/10th second
# .split listener thread
# The listener receives all messages flowing through the proxy, on its
# pipe. Here, the pipe is a pair of ZMQ_PAIR sockets that connects
# attached child threads via inproc. In other languages your mileage may vary:

def listener_thread (pipe):
    # Print everything that arrives on pipe
    while True:
        try:
            print (pipe.recv_multipart())
        except zmq.ZMQError as e:
            if e.errno == zmq.ETERM:
                break # Interrupted

# .split main thread
# The main task starts the subscriber and publisher, and then sets
# itself up as a listening proxy. The listener runs as a child thread:
def main ():
    # Start child threads
    ctx = zmq.Context.instance()
    p_thread = Thread(target=publisher_thread)
    s_thread = Thread(target=subscriber_thread)
    p_thread.start()
    s_thread.start()
    pipe = zpipe(ctx)

    subscriber = ctx.socket(zmq.XSUB)
    subscriber.connect("tcp://localhost:6000")
    publisher = ctx.socket(zmq.XPUB)
    publisher.bind("tcp://*:6001")
    l_thread = Thread(target=listener_thread, args=(pipe[1],))
    l_thread.start()
    try:
        monitored_queue(subscriber, publisher, pipe[0], 'pub', 'sub')
    except KeyboardInterrupt:
        print ("Interrupted")

    del subscriber, publisher, pipe
    ctx.term()
    if __name__ == '__main__':
        main()

您可以在此處下載zeromq指南的所有示例。 那里還有zhelpers.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM