如何让Python包在Poetry环境中可用?解决安装报错问题
解决Poetry安装本地包报错问题
问题根源
你在pyproject.toml里重复声明了同一个本地包:既在[tool.poetry]的packages字段指定从lib目录引入my_package,又在dev-dependencies里用path再次声明该包,导致Poetry识别逻辑冲突,触发"目录不是Python包"的报错。
修正方案(二选一即可)
方案1:将包作为项目核心代码引入(推荐)
保留packages字段,删除dev-dependencies里的my-package声明,修改后的pyproject.toml:
[tool.poetry] ... packages = [{ include = "my_package", from = "lib" }] [tool.poetry.dev-dependencies] ... # 移除这一行:my-package = { path = "./lib/my_package/", develop = true }
执行poetry install后,Poetry会自动将lib/my_package作为项目的一部分安装,本地目录包默认处于开发模式(等同于develop=true),修改包内代码会实时生效。
方案2:仅在开发环境引入该包
保留dev-dependencies的声明,删除packages字段,修改后的pyproject.toml:
[tool.poetry] ... # 移除这一行:packages = [{ include = "my_package", from = "lib" },] [tool.poetry.dev-dependencies] ... my-package = { path = "./lib/my_package/", develop = true }
执行poetry install即可完成安装。
验证步骤
- 确认
lib/my_package/__init__.py是合法的Python文件(无语法错误) - 激活虚拟环境后,在Python终端执行
import my_package,验证导入是否成功
内容的提问来源于stack exchange,提问作者setu
相关产品推荐
相关产品推荐

