Python:如何使 Poetry 包含不在子路径上的包/模块?

uri*_*rig 4 python sdist python-packaging python-poetry

我在一个存储库中有两个 Python 项目,它们都依赖于共享实用程序包。我的目标是将这两个项目分别打包在一个软件分发包中(即一个.tzr.gz文件)

\n

我目前正在使用以下方法完成此操作setuptoolssetup.py文件来完成这项工作,但遇到了困难。我更愿意使用 Poetry 来分别管理和打包这两个项目。

\n

请考虑我的问题的“最小重现”:

\n
repo\n    project1/ \n        __init__.py\n        main_module.py\n        pyproject.toml\n    project2/ \n        __init__.py\n        main_module.py\n        pyproject.toml\n    util/\n        __init__.py\n        util_module.py\n
Run Code Online (Sandbox Code Playgroud)\n

我试图通过修改Poetryutil在构建时包含该包project1project.toml

\n
[tool.poetry]\nname = "project1"\nversion = "0.1.0"\ndescription = ""\nauthors = [""]\npackages = [\n    { include = "../util/*.py" }\n]\n\n[tool.poetry.dependencies]\npython = "^3.9"\n\n[tool.poetry.dev-dependencies]\npytest = "^5.2"\n\n[build-system]\nrequires = ["poetry-core>=1.0.0"]\nbuild-backend = "poetry.core.masonry.api"\n\n
Run Code Online (Sandbox Code Playgroud)\n

当我跑步时poetry build我收到此错误:

\n
Building project1 (0.1.0)\n  - Building sdist\n\n  ValueError\n\n  \'C:\\\\repo\\\\util\\\\__init__.py\' is not in the subpath of \'C:\\\\repo\\\\project1\' OR one path is relative and the other is absolute.\n\n  at ~\\.pyenv\\pyenv-win\\versions\\3.9.6\\lib\\pathlib.py:929 in relative_to\n       925\xe2\x94\x82         n = len(to_abs_parts)\n       926\xe2\x94\x82         cf = self._flavour.casefold_parts\n       927\xe2\x94\x82         if (root or drv) if n == 0 else cf(abs_parts[:n]) != cf(to_abs_parts):\n       928\xe2\x94\x82             formatted = self._format_parsed_parts(to_drv, to_root, to_parts)\n    \xe2\x86\x92  929\xe2\x94\x82             raise ValueError("{!r} is not in the subpath of {!r}"\n       930\xe2\x94\x82                     " OR one path is relative and the other is absolute."\n       931\xe2\x94\x82                              .format(str(self), str(formatted)))\n       932\xe2\x94\x82         return self._from_parsed_parts(\'\', root if n == 1 else \'\',\n       933\xe2\x94\x82                                        abs_parts[n:])\n\n
Run Code Online (Sandbox Code Playgroud)\n

没有poetry支持我的用例?如果没有,我错过了什么?

\n

或者,请建议另一种方法来分别打包我的两个项目,但两个包都必须包含共享的util包。

\n