You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法导入自制Python包,报ModuleNotFoundError错误求助

模块导入错误:ModuleNotFoundError: No module named 'application'

项目结构

application
 ├── app
 │   └── package
 │       ├── __init__.py
 │       └── functions.py
 └── app2
     └── some_folder
         └── file_2.py

文件内容

  • functions.py:
# functions.py
def add(x,y):
    return x+y
  • __init__.py:空文件

问题描述

在file_2.py中尝试导入add函数:

# file_2.py
from application.app.package.functions import add
print(add(2,3))

运行后报错:

ModuleNotFoundError: No module named 'application'

尝试以下导入语句也出现相同错误:

from app.package.functions import add
from package.functions import add
from functions import add

解决方法

方法1:在脚本中添加项目根目录到Python路径

在file_2.py开头添加代码,手动将项目根目录(即application文件夹的上级目录)加入Python的模块搜索路径:

# file_2.py
import sys
from pathlib import Path

# 获取项目根目录路径
project_root = Path(__file__).parent.parent.parent
sys.path.append(str(project_root))

from application.app.package.functions import add
print(add(2,3))

方法2:设置PYTHONPATH环境变量

运行脚本前,将项目根目录添加到PYTHONPATH环境变量中:

  • Linux/macOS终端:
export PYTHONPATH="/你的项目根目录路径:$PYTHONPATH"
python app2/some_folder/file_2.py
  • Windows命令提示符:
set PYTHONPATH=C:\你的项目根目录路径;%PYTHONPATH%
python app2\some_folder\file_2.py
  • Windows PowerShell:
$env:PYTHONPATH = "C:\你的项目根目录路径;$env:PYTHONPATH"
python app2\some_folder\file_2.py

方法3:将项目作为可安装包(推荐)

在application目录下创建setup.py文件:

from setuptools import setup, find_packages

setup(
    name="application",
    version="0.1",
    packages=find_packages()
)

然后在终端进入application目录,执行开发模式安装:

pip install -e .

安装完成后,就能直接使用from application.app.package.functions import add进行导入。

问题原因

Python只能在模块搜索路径中查找可导入的模块。你运行file_2.py时,项目根目录不在这个路径里,所以Python找不到application模块。教程中能正常运行,大概率是因为教程里的运行工作目录是项目根目录,或者已经配置了PYTHONPATH。

内容的提问来源于stack exchange,提问作者Damocls

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:40:34