我在使用cxfreeze给我的python程序打包好后,当我想启动我的exe文件时发现总是闪退。
于是我在闪退的前一刻截下了图片,看到了一串报错,最终落在了
ImportError: cannot import name ‘_VF’ from partially initialized module ‘torch’ (most likely due to a circular import)
这一行上。
大概就是循环引用出的锅。
查了一番之后找到了解决办法,那就是在使用cxfreeze的时候,加一个参数
–packages=torch
注:有些可能显示有问题,packages前面是两个减号
下面介绍的完整操作流程:
假设我的python程序从main.py开始
- 进入cmd,进入main.py等源程序所在目录
- 调用cxfreeze
- 具体命令为:cxfreeze --packages=torch main.py
- 然后等待,之后在build-然后里面有个文件夹-main.exe就可以打开我的程序了。
发现国内论坛很少讨论这个问题,故搬到这里,希望能帮到大家
原答案及更多详情:https://github.com/pytorch/pytorch/issues/72105