我有一个pyproject.toml
:
[tool.poetry.scripts]
# aka entry points or console scripts for setup.py users
merge = 'mypackage.__main__:main'
mypackage
包含一些我不想在生产环境中运行的assert
语句,但是我想在"optimized" mode中运行这些脚本。
这可能与诗歌脚本有关吗?
答案 0 :(得分:1)
当您使用控制台入口点安装软件包时,setuptools
'或poetry
的安装程序仅在活动的python解释器的bin/
中创建一个简单的可执行填充程序。填充程序决定将调用哪个python解释器来执行您的程序包的代码,并通过扩展确定该调用随附的标志。
因此,首先您需要运行which merge
才能找到垫片所在的位置。它看起来应该与此类似,但是确切的外观非常依赖于操作系统:
#!/home/user/dev/merge/venv/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'mypackage','console_scripts','merge'
import re
import sys
...
现在,只需将 -O
附加到shebang,就可以完成。我在ubuntu上进行了测试,效果很好。
注意事项:
poetry install
之后重新添加标志.wheel
来强制执行此操作答案 1 :(得分:0)
与相关的on my ill-thought-out feature request for Poetry一样,我应该为在生产环境中运行这些软件包的用户设置PYTHONOPTIMIZE=1
,其功能与使用-O
调用脚本相同。