我当前正在尝试从其他文件夹导入一个模块。 像这样
from Assets.resources.libs.pout import Printer, ForeColor, BackColor
这个导入方法在PyCharm中工作得非常好,但是,当我尝试在cmd或IDLE中启动文件时,我得到了这个错误
ModuleNotFoundError: No module named 'Assets'
这是我从main.py到pout.py的文件结构:
- Assets
- main.py
- resources
- libs
- pout.py
有没有关于我如何解决这个问题的线索? 感谢您的帮助
编辑:最初的答案基于这样的假设,即您正在运行的脚本位于给定的文件夹结构中,重新阅读后告诉我可能不是这样。一般的解决办法是这样做
但更多细节请阅读下文
原始答案
在运行脚本的两种方法中,可以从中加载模块的路径将有所不同
如果你加上
在导入之前的脚本顶部,您应该能够看到差异
当您自己运行它时,第一个条目将是脚本本身的位置,后面是各种系统/环境路径。当您在PyCharm中运行它时,您将看到相同的第一个条目,然后是项目顶层的条目。这就是它从PyCharm运行时查找模块的方式。此行为由运行配置中的“将内容根添加到PYTHONPATH”选项控制
以编程方式添加此路径在所有情况下都能正常工作并不是件小事,因为与PyCharm不同,您的脚本没有顶层应该在哪里的概念。但是如果您知道您将从顶层运行脚本,即您的工作目录将是包含资产的文件夹,并且您正在运行类似
python Assets/main.py
的东西,那么您可以这样做这将为路径添加正确的文件夹
相关问题 更多 >
编程相关推荐