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

Python项目跨文件导入变量失败,求可复用解决方案

解决跨模块导入问题的通用方案

先把项目改成标准Python包结构

给你的目录补全必要文件,让Python能识别它为合法包,调整后结构如下:

你的项目根目录/
-- app/
-- -- __init__.py  # 空文件即可,用来标识这是Python包
-- -- function/
-- -- -- __init__.py
-- -- -- run.py
-- -- constants.py
-- pyproject.toml

配置pyproject.toml

在项目根目录新建pyproject.toml,写入以下内容:

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "app"
version = "0.1.0"

这个文件用于告知Python,这是一个可安装的正式包,方便后续在任意环境中复用。

以开发模式安装包

打开终端,进入项目根目录,执行以下命令:

pip install -e .

-e代表开发模式安装,修改代码后无需重新安装,变更会实时生效。

正常导入使用

现在在run.py里直接用绝对导入即可:

from app.constants import VARIABLE

无论你在哪个目录运行脚本,或是把这个项目复制到其他环境,只要安装了这个包,导入操作都能正常工作。

为啥之前的方法失败?

  • 相对导入报错:直接运行run.py时,Python会把function/当成顶层模块,无法识别上层的app包,因此相对导入找不到父级。
  • 直接from app.constants import ...报错:因为app不在Python的模块搜索路径中,Python找不到这个包。

这种标准包的方式完全符合Python规范,是能在多个项目复用的正规解决方案,而非临时hack。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:05:06