我正在测试 python 2.7 中的多处理管理器包,并遇到了一个问题,该问题已经记录在 Unix 上运行的 NFS ( https://bugs.python.org/issue13978 )。问题是虽然这突出了问题,但我不清楚你是如何解决这个问题的,或者替代方案是什么?
from multiprocessing import Manager
if __name__ == '__main__':
Manager()
Run Code Online (Sandbox Code Playgroud)
然后我调用我的脚本并得到:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/util.py", line 274, in
_run_finalizers
finalizer()
File "/usr/lib/python2.7/multiprocessing/util.py", line 207, in __call__
res = self._callback(*self._args, **self._kwargs)
File "/usr/lib/python2.7/shutil.py", line 252, in rmtree
onerror(os.remove, fullname, sys.exc_info())
File "/usr/lib/python2.7/shutil.py", line 250, in rmtree
os.remove(fullname)
OSError: [Errno 16] Device or resource busy: '/home/user/.tmp/pymp-xrl_Vc/.nfs0000000196'
Run Code Online (Sandbox Code Playgroud)
如果我不能使用 Manager,是否有另一种方法可以在多个进程之间共享一个对象,或者是否有解决方法(manager.shutdown 和 del manager 的建议方法没有任何效果)?
今天有更多的时间来研究这个,经过一番挖掘,我找到了一个导致干净退出的解决方案(即没有错误)。
from multiprocessing import Manager
mp = Manager() …Run Code Online (Sandbox Code Playgroud) $myValue= (.\command.exe arguments | select -first 1)
Run Code Online (Sandbox Code Playgroud)
我在 Azure Devops 管道中运行上述代码,
$myValue包含我期望的值,但我得到:
##[error]PowerShell exited with code '1'.
Run Code Online (Sandbox Code Playgroud)
我的任务完成后返回...有人知道为什么吗?我不知道这是否是一个语法问题,或者我是否command.exe做了一些奇怪的事情来影响退出代码。
git -c diff.mnemonicprefix=false -c core.quotepath=false push -v origin
feature/xxx:feature/xxx
POST git-receive-pack (3470 bytes)
Pushing to http://xxx@stash/xxx.git
To http://stash/xxx.git
! [remote rejected] feature/xxx -> feature/xxx (unable to migrate objects
to permanent storage)
error: failed to push some refs to
'http://xxx@stash/xxx.git'
Completed with errors, see above.
Run Code Online (Sandbox Code Playgroud)
有人可以解释如何解决此错误吗?我已经查看了其他一些类似的问题,但我找不到任何有助于解决此推送被拒绝的原因-我实际上在半小时前更新了分支,并想推送一个我忘记包含的新文件在最初的推动中。我尝试更新 dev 然后切换回我正在处理的功能分支,因为一些评论表明 git 尝试更新其他本地分支和远程分支之间的差异,但这没有做任何事情 - 我得到完全相同的错误消息和以前一样。
是否有一种巧妙的方法来遍历列表,将值添加为字典键,以及它在列表中的位置作为其值?就像是:
for x,y in enumerate(line):
dictItem[x] = y
Run Code Online (Sandbox Code Playgroud)
但是在一条线上?