我正在尝试从Ipython控制台和cmd运行代码
这里是代码,但重要的是请检查我下面描述的两个场景
#coding: utf-8
import sys, logging, time, os, random
from multiprocessing import Process, Queue, Pool, \
cpu_count, current_process, Manager
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(message)s')
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
ch.setFormatter(formatter)
logger.addHandler(ch)
def producer_task(q, fibo_dict):
for i in range(15):
value = random.randint(1, 20)
fibo_dict[value] = None
logger.info("Producer [%s] putting value [%d] into queue.. " % (current_process().name, value))
q.put(value)
def consumer_task(q, fibo_dict):
while not q.empty():
value = q.get(True, 0.05)
a, b = 0, 1
for item in range(value):
a, b = b, a + b
fibo_dict[value] = a
logger.info("consumer [%s] getting value [%d] from queue..." % (current_process().name, value))
data_queue = Queue()
number_of_cpus = cpu_count()
manager = Manager()
fibo_dict = manager.dict()
producer = Process(target=producer_task, args=(data_queue, fibo_dict))
producer.start()
producer.join()
2种情况:
1)当我将代码保存为tes*.py并从CMD(python test.py)运行时,它工作正常, 2) 当我复制Ipython中的代码并执行(Ctrl+Enter)时。我得到一个奇怪的错误AttributeError:'module'objet没有属性'consumer\u task'
有人能解释一下哪里出错了吗。提前谢谢
目前没有回答
相关问题 更多 >
编程相关推荐