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。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java数据不显示在FXML表中   java如何使整个JTable不可编辑   Java中的swing JTree JTable组合   Windows下的java诊断NIO DatagramChannel读取问题   java Dockerfile运行可执行文件   java手动初始化字节数组以测试更改   java Selenium Webdriver | DragAndDrop功能|也不例外,但代码不起作用   java Hibernate使用多对多关系和左连接多次加载同一实体?   java正在努力开发带有接口和泛型集的API   mongodb mongo java条件和如果不为null   Java程序不显示使用arduino ethernet shield在网页上发送的数据   java将JSONObject转换为JSONArray错误   java Box布局可以接受包含元素的大小吗?