[英]Suddenly .py files can't import modules but still works with CMD
我有一个奇怪的问题。
主要问题:我的.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将我的应用程序变成可执行文件。
我在Anaconda的Spyder应用程序中编辑并测试了工作的.py文件。
因此,我正在测试可执行文件,它们可以正常工作,就像我的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启动时的情况以及尝试加载模块时的情况。 您也许可以收集有关这种方式出了什么问题的信息。
从.py转换为.exe时,我认为您使用了错误的版本。 通常,CMD使用ENV变量中的任何内容,因此只需确保所有版本号都相同即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.