我写了一个基于flask的UI服务器,它以自己的进程运行,在Linux和Mac上运行很好,但是当尝试在Windows上运行时,它会异常,似乎是因为Windows只有spawn方法,而我的代码并不真正支持它。它失败,但出现以下异常:
File "C:\Python36-32\Scripts\bibliopixel", line 4, in <module>
__import__('pkg_resources').run_script('BiblioPixel==3.0.6', 'bibliopixel')
File "C:\Python36-32\lib\site-packages\pkg_resources\__init__.py", line 743, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "C:\Python36-32\lib\site-packages\pkg_resources\__init__.py", line 1498, in run_script
exec(code, namespace, namespace)
File "c:\python36-32\lib\site-packages\bibliopixel-3.0.6-py3.6.egg\EGG-INFO\scripts\bibliopixel", line 15, in <module>
main.main()
File "C:\Python36-32\lib\site-packages\bibliopixel-3.0.6-py3.6.egg\bibliopixel\main\main.py", line 46, in main
result = run(args, presets) or 0
File "C:\Python36-32\lib\site-packages\bibliopixel-3.0.6-py3.6.egg\bibliopixel\main\run.py", line 36, in run
task.start()
File "C:\Python36-32\lib\site-packages\bibliopixel-3.0.6-py3.6.egg\bibliopixel\remote\control.py", line 126, in start
self.server.start()
File "C:\Python36-32\lib\multiprocessing\process.py", line 105, in start
self._popen = self._Popen(self)
File "C:\Python36-32\lib\multiprocessing\context.py", line 223, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "C:\Python36-32\lib\multiprocessing\context.py", line 322, in _Popen
return Popen(process_obj)
File "C:\Python36-32\lib\multiprocessing\popen_spawn_win32.py", line 33, in __init__
prep_data = spawn.get_preparation_data(process_obj._name)
File "C:\Python36-32\lib\multiprocessing\spawn.py", line 172, in get_preparation_data
main_mod_name = getattr(main_module.__spec__, "name", None)
AttributeError: module '__main__' has no attribute '__spec__'
我对MP的理解是,它希望能够整体运行一个模块,但是如果你让它从另一个模块导入一个函数,它应该可以正常工作。。。由于所有这些都深深地隐藏在一个完整的包中,我真的找不到一个好的方法来通过一个带有适当的if __name__ == "__main__"
部分的模块来启动这些功能。在
该过程在此处生成:
在这里调用函数:
我是新来的议员,所以我可能只是错过了一些愚蠢的东西,但我不知道是什么:p
目前没有回答
相关问题 更多 >
编程相关推荐