如何在pyproject.toml中为Poetry配置Python路径以自定义sys.path?
配置Poetry虚拟环境让自定义路径出现在sys.path的方法
方法一:将目标路径作为本地开发依赖引入
这种方式适合目标路径包含Python包(存在__init__.py)的场景,Poetry会自动将其添加到sys.path:
- 打开项目根目录下的
pyproject.toml,找到[tool.poetry.dependencies]区块 - 添加本地包配置,替换成你的目标路径:
[tool.poetry.dependencies] python = "^3.8" # 替换为你的Python版本要求 my-custom-module = { path = "./path/to/your/target", develop = true }path:填写目标路径的相对或绝对地址develop = true:开启开发模式,路径内代码修改无需重新安装即可生效
- 执行命令更新环境:
poetry install - 激活虚拟环境:
poetry shell - 启动Python解释器,执行
import sys; print(sys.path),目标路径会出现在输出列表中
方法二:通过PYTHONPATH环境变量配置
这种方式无需路径内存在Python包,直接通过环境变量将路径加入sys.path(需Poetry 1.2及以上版本):
- 打开
pyproject.toml,新增[tool.poetry.env]区块:[tool.poetry.env] # Linux/macOS系统用冒号分隔 PYTHONPATH = "./path/to/your/target:${PYTHONPATH}" # Windows系统用分号分隔,替换上面一行: # PYTHONPATH = "./path/to/your/target;%PYTHONPATH%" - 执行
poetry install让配置生效 - 激活虚拟环境后,启动Python解释器查看sys.path,目标路径已被包含
注意事项
- 若使用Poetry 1.2以下版本,先升级到最新版:
poetry self update - 相对路径基于
pyproject.toml所在目录,使用绝对路径可避免路径歧义
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

