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

Poetry项目中子文件夹脚本无法导入本地包的问题

解决Poetry项目中子文件夹脚本导入本地包的问题

问题场景

你的run.py代码如下:

from abc import module1

当脚本和本地包处于同一根目录层级时(目录结构如下),从根目录执行python run.py能正常运行:

abc/
    pyproject.toml
    abc/
        module1.py
        __init__.py
    run.py

但把脚本移到scripts子文件夹后(目录结构如下),从根目录执行python scripts/run.py会报错No module named 'module1':

abc/
    pyproject.toml
    abc/
        module1.py
        __init__.py
    scripts/
        run.py

解决方案

方法1:用Poetry管理环境运行脚本

在项目根目录执行以下命令,把本地包安装到Poetry虚拟环境:

poetry install

之后通过Poetry运行脚本,就能自动识别本地包路径:

poetry run python scripts/run.py

方法2:在脚本中手动添加项目路径

在scripts/run.py开头加入代码,把项目根目录添加到Python模块搜索路径:

import sys
from pathlib import Path

# 获取项目根目录(当前脚本所在文件夹的上级目录)
project_root = Path(__file__).parent.parent
sys.path.append(str(project_root))

# 之后正常导入本地包
from abc import module1

方法3:临时设置PYTHONPATH环境变量

运行脚本前,先把项目根目录添加到环境变量:

  • Linux/macOS终端:
export PYTHONPATH=/你的项目绝对路径/abc
python scripts/run.py
  • Windows PowerShell:
$env:PYTHONPATH = "C:\你的项目绝对路径\abc"
python scripts/run.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:42:03