Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python multiprocessing.manager问题sys.args_Python_Windows_Windows Services_Multiprocessing_Python Multiprocessing - Fatal编程技术网

Python multiprocessing.manager问题sys.args

Python multiprocessing.manager问题sys.args,python,windows,windows-services,multiprocessing,python-multiprocessing,Python,Windows,Windows Services,Multiprocessing,Python Multiprocessing,我正在一个多处理的小型windows服务应用程序中运行以下python代码行 multiprocessing.Manager() 问题在于,在运行windows服务时,模块sys集合中似乎没有属性argv。因此,在python多处理分叉库中出现以下错误。我希望有人能对这个问题有所了解 问题的堆栈跟踪(在windows服务中运行multiprocessing.Manager时): 更新 我的问题的一个可能的解决方案是,如果在运行时没有设置值,那么我手动设置sys.argv值,但这似乎非常不和谐。

我正在一个多处理的小型windows服务应用程序中运行以下python代码行

multiprocessing.Manager()
问题在于,在运行windows服务时,模块sys集合中似乎没有属性argv。因此,在python多处理分叉库中出现以下错误。我希望有人能对这个问题有所了解

问题的堆栈跟踪(在windows服务中运行multiprocessing.Manager时):

更新

我的问题的一个可能的解决方案是,如果在运行时没有设置值,那么我手动设置
sys.argv
值,但这似乎非常不和谐。但这可能是唯一的解决办法。堆垛工怎么想

if not hastattr(sys, 'argv'):
    sys.argv = []
但是,这又导致multiprocessing.manager出现了一个新问题,代码中出现了意外的EOFError

  File "C:\python27\lib\multiprocessing\__init__.py", line 99, in Manager
    m.start()
  File "C:\python27\lib\multiprocessing\managers.py", line 528, in start
    self._address = reader.recv()
  EOFError

由于设置
sys.argv=[]
不起作用,如果有脚本名称,您可以使用do
sys.argv=['scriptname']
或仅
sys.argv=['']
。如果运行python,导入
sys
,然后查看
sys.argv
,就会得到后者,例如

~$ python
>>> import sys
>>> sys.argv
['']

Python初始化后调用此函数:

PySys_SetArgv(argc, argv);

解释器无法以其他方式访问argc/argv,而只能从main()显式传递它们。

我现在没有访问Windows系统的权限,但是如果您显式设置
sys.argv=[]
?@ldx.a.ldy.c ah yes,我想把它作为一个可能的解决方案,只是想知道这是否是解决这个问题的唯一方法。我不得不这么做似乎有点不太和谐。然后,它也会导致我的文章更新中所描述的错误。不知何故,在以独立方式进行单元测试时,我遇到了更新中提到的一个问题。在PyDev中进行单元测试时,一切正常运行。你在更新中解决过你的问题吗?感谢@sigmavirus24的评论,即使我按照你说的做了,我仍然遇到了问题中列出的第二个异常。我不确定这是否是一个可能的python错误,我只是猜测。我从未见过这个问题,而且我经常使用多处理。您最好在freenode上输入python。他们中的许多人比我知识渊博得多。
PySys_SetArgv(argc, argv);