Asp*_*t11 5 c++ python setuptools python-packaging python-poetry
所以我有以下文件结构:
\nproject/\n\xe2\x94\x9c\xe2\x94\x80 cpp_src/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 src/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 cpp source files\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 test/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 cpp test files\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 stub.pyi\n\xe2\x94\x9c\xe2\x94\x80 python_src/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80 build.py\nRun Code Online (Sandbox Code Playgroud)\n在我的build.py文件中,我使用 setuptools 使用cpp_src自定义build_ext命令来编译和打包 C++ 扩展。但是,我似乎无法让它包含存根文件stub.pyi。如何修改 setuptools 命令来执行此操作?我不太关心文件结构,所以如果setup.py中需要另一个文件cpp_src,那很好。
如果有帮助的话,我还使用 Poetry 来管理虚拟环境。此外,如果有另一个构建系统可以使这变得更容易,我很乐意使用它。
\n谢谢。
\n编辑:这是该文件的简化版本build.py(完整存储库位于https://github.com/Aspect1103/Hades/tree/ Generation- rust ):
project/\n\xe2\x94\x9c\xe2\x94\x80 cpp_src/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 src/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 cpp source files\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 test/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 cpp test files\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 stub.pyi\n\xe2\x94\x9c\xe2\x94\x80 python_src/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80 build.py\nRun Code Online (Sandbox Code Playgroud)\n
我不认为目前有一种方法可以.pyi直接.so在文件结构中安装文件,但是您可以利用PEP 561 的仅存根包在存储库中创建一个单独的包,其中仅包含您的存根,然后将安装该包并得到兼容 IDE 的认可。
my_pkg-stubs(根据PEP 561)my_pkg.pyi为my_pkg-stubs/__init__.pyisetup.py,添加my_pkg-stubs软件包,并确保该.pyi文件将包含在发行版中:...
packages=[..., 'my_pkg-stubs'],
include_package_data=True,
package_data={"my_pkg-stubs": ["*.pyi"]},
...
Run Code Online (Sandbox Code Playgroud)
当my_pkg和my_pkg-stubs都安装时,符合 PEP561 的 IDE 将查找my_pkg-stubs类型提示并自动显示它们。我已在应用此过程的存储库上使用 Visual Studio Code 验证了此行为。
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |