说明: 笔者在python编程中遇到的python问题集合。
- AttributeError: module 'os' has no attribute 'fork'
解决方案: os.fork不能直接在win上使用,代替方案multiproessing
from multiprocessing import Process
import os
def run_proc(name):
print('运行子进程%s(%s)......'%(name,os.getpid()))
if __name__ == '__main__': # 一定要用__main__来标识主进程
print('父进程%s'%os.getpid())
p = Process(target=run_proc,args=('test',))
print('子进程将开始')
p.start()
p.join()
print('子进程结束')
- ImportError: cannot import name 'Empty' from 'queue'
原因:在queue中找不到Empty模块。主要是python读取模块时会先遍历同级目录,当文件命名为queue时,会从本地查找,进而出现出错。
解决方案:在导入multiprocessing时出现这种情况,将文件名改为其他不覆盖包名的名称即可。