ufile未能注册模块啥原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ufile未能注册模块啥原因相关的知识,希望对你有一定的参考价值。

参考技术A 是因为引用的shdocvw.dll的原因。在安装程序里面,找到ieframe.dll的一个引用,删除即可。shdocvw.dll是为Windows应用程序添加基础文件和网络操作相关模块。

Python 多处理模块意外输出。可能是啥原因造成的?

【中文标题】Python 多处理模块意外输出。可能是啥原因造成的?【英文标题】:Python Multiprocessing module unexpected outputs. What can be the cause of it?Python 多处理模块意外输出。可能是什么原因造成的? 【发布时间】:2020-10-01 03:41:07 【问题描述】:

我正在学习 Python 的多处理模块。我在 Python 3.8 上。这是我的示例代码:

# import stuff

def add(x, y):
    time.sleep(10)
    print(f'x + y \n')


def main():

    start = time.perf_counter()

    if __name__ == '__main__':
        p1 = mp.Process(target=add, args=(100, 200))
        p2 = mp.Process(target=add, args=(200, 300))
        p1.start(); p2.start()
        p1.join(); p2.join()

    end = time.perf_counter()

    print(f'end - start seconds \n')


main()

我期待如下输出:

300

500

10.something seconds

但是当我运行它时,我得到:

5.999999999062311e-07 seconds 
5.00000000069889e-07 seconds 


500 

300 

10.704853300000002 seconds

由于某种原因,end = time.perf_counter(); print(f'end - start seconds \n') 部分在每个进程启动后执行一次,在它们都结束后再执行一次。但是这里我特意写p1.join(); p2.join()告诉计算机等到这些进程完成后再继续下面的代码行。

为什么会这样?我能做些什么来解决它?

【问题讨论】:

你用的是什么平台? @dano,我在 Windows 10 上 【参考方案1】:

这是因为您在不支持fork 的Windows 上运行。在 Linux 上,我看到了您期望的输出。因为 Windows 不能 fork,它必须在每个子进程中重新导入整个模块才能运行您的工作函数。因为您没有在if __name__ == "__main__": 保护中保护计算/打印运行时的代码,所以它们在启动时在您的两个工作进程中执行,除了在工作人员完成后在您的主进程中运行。将它们(以及您只想在父进程中运行的任何其他代码)移动到警卫中以获得您想要的输出:

# import stuff

def add(x, y):
    time.sleep(10)
    print(f'x + y \n')


def main():
    p1 = mp.Process(target=add, args=(100, 200))
    p2 = mp.Process(target=add, args=(200, 300))
    p1.start(); p2.start()
    p1.join(); p2.join()


if __name__ == '__main__':
    main()

【讨论】:

有个小错误。它应该是 '__main__' 而不是 '__main__"

以上是关于ufile未能注册模块啥原因的主要内容,如果未能解决你的问题,请参考以下文章

域名转移失败一般是啥原因?

注册ins老是说未能完成请求_ins注册总显示出错

移动端开发页面覆盖iphone顶部信息栏,啥原因

anydesk不能连接是啥原因

下了sublime3,结果注册不了是怎么回事,不注册会有啥影响吗

注册团队博客