我有一个奇怪的问题。
主要问题:我的.py文件曾经可以像3个小时前一样正常运行,现在无法导入任何外部模块。我仍然可以从Spyder(类似于PyCharm编辑器)和CMD使用运行它们python run.py
。但是,单击时出现错误ModuleNotFoundError: No module named ModuleName
。但是,在运行其他所有模块时都可以找到该模块,该模块位于Anaconda库中。该文件夹没有任何许可限制,它不仅是一个文件,还是导入外部模块的任何.py文件。
起初,我认为这可能是一个小问题,因为我刚刚更新为小知识18,但是即使撤回到小知识10.0.1,问题仍然存在。
[编辑]:我曾尝试制作一个PyInstaller .exe,它仍然可以按预期工作,但是该应用程序仍无法与cx_freeze一起使用,即使它在几个小时前就已使用过。
背景故事:我在玩PyInstaller和Cx_Freeze将我的应用程序变成可执行文件。
我有自己的工作.py文件,可以在Anaconda的Spyder应用程序中进行编辑和测试。
因此,我正在测试可执行文件,它们可以正常工作,就像我的python代码一样。Pyinstaller独立版本和cx_freeze应用程序可以正常运行。
因此,我在主.py文件中进行了一些更改(只是删除了print('')就没什么疯狂的了),重用cx_freeze,然后在某个时候开始为我的cx_freezed应用程序创建安装向导。
一切都很好,除了在运行应用程序时,cmd提示只是关闭。我认为“很奇怪”,我在Spyder中测试了.py文件,它工作正常,所以我将cmd:上的内容截图了ModuleNotFoundError: No module named ModuleName
,因此我认为向导安装程序存在问题,因此我尝试使用原始.exe文件错误。因此,我尝试使用.py文件,但出于同样的错误,我仔细检查了模块,成功重新安装,错误仍然存在。
因此,我尝试运行一个备份,我确定该备份确实有效,并且在其中我没有编辑任何内容,现在出现相同的错误。
这真的很烦人,因为我想制作该应用程序的.exe,并设法解决了这个问题,而现在却无济于事
您可以尝试以下方法。添加此代码可以从系统路径中打印出来。
import sys
from pprint import pprint
pprint(sys.path)
那应该告诉您所有可以从中加载模块的路径。如果您的文件不在路径之一中,则不会加载该文件。
有关更多信息,您可以运行带-v
标记的python,它将详细地通知您python启动时的情况以及尝试加载模块时的情况。您也许可以收集有关这种方式出了什么问题的信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句