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

将sites/tentimes.py作为__main__运行时的Python导入问题

解决站点文件单独运行的导入问题

问题原因

直接运行sites/tentimes.py时,Python会把sites目录当作顶层模块路径,而event.py在项目根目录(sites的父目录),不在当前的模块搜索路径里,所以会抛出导入错误。但通过main.py运行时,根目录被加入模块搜索路径,因此能正常找到event.py。

解决方案

方法一:手动添加项目根目录到模块路径

在tentimes.py的开头加入以下代码,把项目根目录添加到Python的模块搜索路径中,这样无论直接运行还是通过main.py运行都能正常导入:

# sites/tentimes.py
import sys
from pathlib import Path

# 获取项目根目录(当前文件的父目录的父目录)
root_dir = str(Path(__file__).parent.parent)
if root_dir not in sys.path:
    sys.path.append(root_dir)

from event import Event

# 你的业务代码...

if __name__ == '__main__':
    # 单独运行时的测试逻辑
    test_event = Event()
    # 执行测试操作

直接运行tentimes.py即可,无需额外操作。

方法二:使用相对导入+模块方式运行

  1. 修改tentimes.py中的导入语句为相对导入:
# sites/tentimes.py
from ..event import Event

# 你的业务代码...

if __name__ == '__main__':
    # 测试逻辑
    pass
  1. 在项目根目录下,使用Python的-m参数以模块方式运行:
python -m sites.tentimes

这种方式更符合Python的包结构规范,但必须在根目录下执行命令,不能直接双击或运行tentimes.py文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:29:54