python的多进程

from multiprocessing import Process
import os

# 子进程要执行的代码
def run_proc(name):
    print("这是一个进程任务")

if __name__=='__main__':
    print('Parent process %s.' % os.getpid())
    p = Process(target=run_proc, args=('test',))
    print('Child process will start.')
    p.start()
    p.join()
    print('Child process end.')

clipboard.png

这是一个跟简单的python进程相关的代码。
我的问题很简单,为什么我在第一句导入Process的时候,pycharm提示爆红了?虽然这段代码运行起来并没有报错
还有一个问题,我找到multiprocessing所在的包,包的目录结构如下:

clipboard.png
也并没有Process.py文件啊,那python是怎么执行代码而不报错呢?

觉得python好难啊,我之前是Java,Java只要导入包的路径就可以直接使用了,如果eclipse报红的话,那运行起来也肯定会报错,但是面对python,编辑器已经爆红了,但是运行起来却没问题,我好懵啊。
我在网上找的所有关于python的多进程,第一句都是from multiprocessing import Process,难道就没人遇到Process爆红的问题吗?还是用了比pycharm这种IDE更智能的python编辑器?

阅读 3.4k
2 个回答

因为multiprocessing包的__init__.py文件中有这么一句:
from . import context

IDE 报错但运行不报错很可能是因为 IDE 里配置的解析器版本与运行环境不一致, 请检查 Default Settings -> Project Interpreter 的设置

图片描述
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题