kol*_*pto 9 python cython python-poetry
我的项目中有一个文件,出于性能原因,我想对其进行编译:
mylibrary/myfile.py
如何用 Poetry 实现这一目标?
Poetry 中有一个未记录的功能。将此添加到您的pyproject.toml:
[tool.poetry]
...
build = 'build.py'
[build-system]
requires = ["poetry>=0.12", "cython"]
build-backend = "poetry.masonry.api"
Run Code Online (Sandbox Code Playgroud)
它的作用是build.py:build()在隐式生成的 setup.py 中运行该函数。这是我们建造的地方。
因此,创建一个build.py提供以下build()功能的函数:
[tool.poetry]
...
build = 'build.py'
[build-system]
requires = ["poetry>=0.12", "cython"]
build-backend = "poetry.masonry.api"
Run Code Online (Sandbox Code Playgroud)
现在,当你这样做时poetry build,什么也没有发生。但是如果你在其他地方安装这个包,它会被编译。
您还可以使用以下命令手动构建它:
$ cythonize -X language_level=3 -a -i mylibrary/myfile.py
Run Code Online (Sandbox Code Playgroud)
最后,您似乎无法将二进制包发布到 PyPi。解决方案是将您的构建限制为“sdist”:
$ poetry build -f sdist
$ poetry publish
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1549 次 |
| 最近记录: |