使用孵化时如何将包数据添加到 pyproject.toml 中?

Uba*_*eri 7 python python-3.x

注意这个问题涉及hatch(不是setuptools也不是distutils)。

\n

我正在开发我的第一个包,并且正在遵循指南。

\n

我的项目结构如下:

\n
mypackage\n\xe2\x94\x82   LICENSE\n\xe2\x94\x82   pyproject.toml\n\xe2\x94\x82   README.md\n\xe2\x94\x82   requiremets.txt            \n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80docs\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80scripts          \n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80src\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80mypackage\n\xe2\x94\x82          config.py\n\xe2\x94\x82          first_module.py\n\xe2\x94\x82          datatypes.py\n\xe2\x94\x82          utils.py\n\xe2\x94\x82          first_module.py\n\xe2\x94\x82          __init__.py         \n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80tests\n
Run Code Online (Sandbox Code Playgroud)\n

但是,我注意到其中只有上面树的C:\\Users\\<User>\\Miniconda3\\envs\\myenv\\Lib\\site-packages\\mypackage内容。./mypackage/scr/mypackage

\n

我想要实现的是还安装脚本文件夹,因为在源代码中我定义了一个函数

\n
def open_tutorial() -> None:\n    site_packages = next(\n        p for p in sys.path if "site-packages" in p\n    )\n    open(site_packages+"\\\\mypackage\\\\scripts\\\\tutorial.py")\n
Run Code Online (Sandbox Code Playgroud)\n

这将允许用户运行如下代码

\n
import mypackage as mpkg\n\nmpkg.open_tutorial()\n
Run Code Online (Sandbox Code Playgroud)\n

我期望的是scripts/tutorial.py在用户编辑器中打开。

\n

如何实现我的目标?我想我应该编辑文件中的某些内容pyproject.toml,或者我必须hatch以某种方式进行设置,但我不知道如何设置。有什么建议吗?

\n

相关问题:我希望它适用于任何操作系统,因此open_tutorial()欢迎任何关于如何更改我的功能的提示!:)

\n

Uba*_*eri 7

解决方案:

[tool.hatch.build.targets.wheel]
only-include = ["src/mypackage", "scripts"]

[tool.hatch.build.targets.wheel.sources]
"src" = ""
"scripts" = "mypackage/scripts"
Run Code Online (Sandbox Code Playgroud)

这里