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

如何在非Poetry管理的脚本中导入Poetry项目内的模块?

临时从外部脚本导入Poetry项目内模块的最简方案

针对你的场景,不需要额外创建Poetry项目或安装模块,只需要在script.py里临时调整Python的模块搜索路径,就能直接导入目标模块。以下是具体实现:

1. 修改script.py的导入代码

替换你原来的错误导入代码,添加路径处理逻辑后再导入目标模块:

import sys
from pathlib import Path

# 定位到modules-project的根目录(scripts与modules-project为同级目录)
modules_project_root = Path(__file__).parent.parent / "modules-project"
# 将该目录添加到Python的模块搜索路径
sys.path.append(str(modules_project_root))

# 现在可以正常导入目标模块
from modules.some_client import YourClass, your_function  # 替换为你需要的类/函数

关键说明:

  • 你原来的import modules-project.modules.some_client.py存在两处错误:模块名不能包含横杠,且导入时不需要加.py后缀
  • 通过sys.path.append把Poetry项目根目录加入搜索路径后,Python就能识别到里面的modules包(该目录下的__init__.py已标记为Python包)

2. 确保依赖生效

如果some_client.py依赖Poetry管理的第三方包,运行script.py时要使用Poetry的虚拟环境解释器:

# 方式1:进入modules-project目录用poetry run执行
cd modules-project
poetry run python ../scripts/script.py

# 方式2:直接指定虚拟环境的Python路径(虚拟环境默认在modules-project/.venv下)
./modules-project/.venv/bin/python ./scripts/script.py

这个方案是纯临时过渡用的,等后续完成代码迁移后,直接删掉sys.path相关的代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:40:04