setuptools入口点的替换exe启动程序
windows-entry-exe的Python项目详细描述
这是一个简单的python文件启动程序,在功能上等同于 在setuptools中启动,但不基于setuptools代码。有两个 从同一个源代码构建的launcher-console和gui的版本。
这个项目基于Vinay Sajip(https://bitbucket.org/vinay.sajip/simple_launcher)的Simple_Launcher。 但是,如果原始项目通过python子进程启动脚本, 这个启动程序嵌入python并直接启动脚本。
这一点的主要好处在windows上的gui项目中可以看到,例如 任务栏中是launcher exe而不是simple_launcher中的python.exe。 此更改意味着将程序固定到任务栏可以工作,任何应用程序图标集也是如此。
启动程序旨在促进在windows下执行脚本,其中 PEP 397兼容启动程序不可用。想法是每一条Python 脚本具有启动程序的副本(符号链接通常不可用 在窗户下)。要让脚本与启动程序一起工作,它们必须有一个名称 以-script.py(对于控制台脚本)或-script.pyw(对于gui脚本)结尾。 部署系统(例如打包)将确保对于foo-script.py 名为foo.exe的控制台启动程序opy位于同一目录中;对于 bar-script.pyw,一个名为bar.exe的gui启动程序副本放在同一个 目录
假设相关目录在路径上,脚本可以是 仅使用“foo”或“bar”调用。foo.exe或bar.exe可执行文件,然后 运行:它查找具有适当后缀(“-script.py”或 “-script.pyw”)在同一目录中,如果找到,则打开该脚本以读取 shebang行,指示要用于脚本的python可执行文件。文件夹 如果找到可执行文件的,则用于指定启动程序针对哪个python.dll运行。
当定义入口点时,上述方案由设置工具自动使用。 distutil但是可以使用附加到可执行文件的存档,而不是单独的文件。 本机也支持此方案;如果找到存档,则将优先使用它,如果不是配套脚本 将被使用。
通过将此模块包含在 您的setup.py配置如下
setup( name="my_proj", ..., use_windows_entry_exe=True, setup_requires=['windows_entry_exe'], entry_points={ 'gui_scripts': [ 'MyProj = my_proj:main', ] }, )
然后,setuptools将使用这些启动程序而不是自己的绑定启动程序来构建entry_point exe。