如何将诗歌构建的Python包添加到另一个带有诗歌的Python项目中?

nub*_*ela 12 python python-poetry

我正在研究两个项目,我们称它们为Project AProject B

Project B需要一些模块Project A,所以我做了一个poetry buildon Project Apip install dist/blabla.whl当我手动对诗歌生成的构建执行 a 时,我能够访问该模块Project A

但是当我做 a 时poetry add project-a git+ssh://git@gitlab.blabla.co/nubela/project-a.git#develop,它说

找不到包项目-a的匹配版本

当然,我理解,因为project-a它不是经典地与 setup.py 之类的东西一起打包的。那么我如何在poetry add <git-repo-uri>不涉及自托管 pypi 实例的情况下执行?

我可以将 .whl 文件推送到项目 git 存储库,这有帮助吗?

fin*_*mer 20

正确的语法是

poetry add git+ssh://git@gitlab.blabla.co/nubela/project-a.git#develop
Run Code Online (Sandbox Code Playgroud)

更多示例在文档中


Arn*_*rne 6

我可以将 .whl 文件推送到项目 git 存储库,这有帮助吗?

虽然理论上它可以解决这个问题,但如果你的 gitlab 甚至允许首先上传二进制文件,那么将存储库视为文件服务器会让你感到头痛。


鉴于您收到的错误消息,这似乎不是问题poetrysetuptools而是git抱怨。您是否确保您的存储库上有一个名为 的标签或分支develop?虽然没有明确提及,但-modepoetry add中的形式git

poetry add git+<protocol>://git@<repository>/<owner>/<project>.git#<git_ref>
Run Code Online (Sandbox Code Playgroud)

最后一个#<git-ref>是可选的,如果省略,poetry将安装默认分支上当前的任何内容(最有可能是“master”)。你可能想要的只是

poetry add git+<protocol>://git@<repository>/<owner>/<project>.git#<git_ref>
Run Code Online (Sandbox Code Playgroud)