无法修改脚本时,执行python something/appl.py如何规避ModuleNotFoundError
问题:解决Python模块导入错误的方案
目录结构与文件内容
- 文件夹:
something- 文件1:
constants.pyTHEKONST = 5 - 文件2:
appl.pyfrom something.constants import THEKONST print(THEKONST)
- 文件1:
问题描述
执行命令 python something/appl.py 时,出现 ModuleNotFoundError: No module named 'something' 错误,要求在无法修改脚本代码及其导入方式的前提下,解决该问题。
补充说明
Trevor提供的方法已生效;此前用相同代码尝试未成功,删除内容后改用touch命令创建文件并粘贴代码后成功,暂未明确失败原因。
解决方案
方法1:临时添加父目录到Python路径
执行命令前,将something文件夹的父目录加入PYTHONPATH环境变量,让Python能定位到something模块:
- Linux/macOS终端:
export PYTHONPATH=$(pwd) && python something/appl.py - Windows命令提示符:
set PYTHONPATH=%cd% && python something/appl.py - Windows PowerShell:
$env:PYTHONPATH = Get-Location; python something/appl.py
方法2:以模块方式运行脚本
切换到something的父目录,使用-m参数以模块形式执行appl.py,Python会自动将当前目录视为包根目录:
python -m something.appl
方法3:将something标记为Python包
在something文件夹内创建空的__init__.py文件,让Python识别该文件夹为可导入的包:
touch something/__init__.py
之后再执行python something/appl.py即可正常运行。
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

