繁体   English   中英

.py文件突然无法导入模块,但仍可与CMD一起使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM