我在一个GUI程序上工作,该GUI程序向控制台发出消息。大多数情况下,可以忽略消息,因此不需要控制台窗口。 Linux用户只需通过选择从Shell会话或窗口管理器启动app
来选择显示还是不显示消息。 Windows用户需要运行不同的脚本:app
用于普通的纯GUI模式,或者app-with-messages
用于gui并带有命令提示符窗口。
entry_points={
# only needed for Windows:
'console_scripts': ['app-with-messages= app.runApp:run'],
# Used on both Linux and Windows:
'gui_scripts': ['app = app.runApp:run']
}
这两个脚本都调用相同的函数。唯一的区别是在Windows app
上将以pythonw.exe
而不是python.exe
开头。我们如何才能避免使我们的linux用户感到困惑,而不创建对他们多余的app-with-messages
脚本?
答案 0 :(得分:2)
如果我正确理解了您的问题,则您正在尝试根据所使用的操作系统来更改entry_points
。如果是这样,您可以在setup.py中包含这样的内容,然后指定setup(entry_points=entry_points)
:
import os
entry_points = {'gui_scripts': ['app = app.runApp:run']}
if os.name == "nt":
entry_points.update({'console_scripts': ['app-with-messages= app.runApp:run']})
print(entry_points)
#> {'console_scripts': ['app-with-messages= app.runApp:run'], 'gui_scripts': ['app = app.runApp:run']}
创建于2018-09-27
import reprexpy
print(reprexpy.SessionInfo())
#> Session info --------------------------------------------------------------------
#> Python: 3.5
#> Platform: Windows-7-6.1.7601-SP1 (64-bit)
#> Date: 2018-09-27
#> Packages ------------------------------------------------------------------------
#> reprexpy==0.1.1