Python项目运行报错ModuleNotFoundError: No module named 'src'求解决
Python模块导入错误:ModuleNotFoundError: No module named 'src'
项目目录结构
📦src ┣ 📂utils ┃ ┣ 📜custom_pow.py ┃ ┣ 📜equation.py ┃ ┗ 📜__init__.py ┣ 📜app.py ┗ 📜__init__.py
代码文件内容
custom_pow.py
class Pow: def __init__(self,a,n): self.a = a self.n = n def pow(self): out = self.a ** self.n return out
equation.py
from src.utils.custom_pow import Pow class CustFormula: def __init__(self,a,b): self.a = a self.b = b def apbwsq(self): ap = Pow(self.a,2) bp = Pow(self.b,2) out = (ap.pow()) + (2*self.a*self.b) + (bp.pow()) return out def apbwcub(self): aap = Pow(self.a,3) bbp = Pow(self.b,3) ap = Pow(self.a,2) bp = Pow(self.b,2) out = (aap.pow()) + (bbp.pow()) + 3*ap.pow()*self.b + 3*bp.pow()*self.a return out
app.py
from src.utils.equation import CustFormula p = CustFormula(2,3) out = p.apbwsq() print(f"(2+3)^2 = {out}")
错误信息
File "********\module-test\src\app.py", line 2, in
from src.utils.equation import CustFormula
ModuleNotFoundError: No module named 'src'
解决方法
方法1:使用相对导入修改代码
当你在src目录下直接运行app.py时,src是当前工作目录,Python不会将其识别为模块名,需要调整导入路径:
- 修改
app.py的导入语句:
from utils.equation import CustFormula p = CustFormula(2,3) out = p.apbwsq() print(f"(2+3)^2 = {out}")
- 修改
equation.py的导入语句为相对导入:
from .custom_pow import Pow class CustFormula: # 其余代码保持不变
方法2:添加项目根目录到Python路径
如果你想保留原始的绝对导入写法,可将项目根目录(src的父目录module-test)添加到PYTHONPATH:
- Windows命令行:
set PYTHONPATH=你的项目根目录路径 python src\app.py
- Linux/macOS终端:
export PYTHONPATH=/你的项目根目录路径 python src/app.py
方法3:从项目根目录运行脚本
切换到module-test目录(src的父目录),使用模块方式运行脚本:
python -m src.app
这种方式会将src作为模块加载,原始的导入语句无需修改。
内容的提问来源于stack exchange,提问作者Sayandip Ghatak
相关产品推荐
相关产品推荐

