在 setup.py 中:对 Windows 和 Linux 使用不同的 console_script?
In setup.py: use a different console_script for Windows and Linux?
我在开发一个向控制台发送消息的 GUI 程序。大多数时候可以忽略消息,因此不需要控制台 window。 Linux 用户只需选择从 shell 会话或 window 管理器启动 app
即可选择显示或不显示消息。 Windows 用户需要 运行 不同的脚本:app
用于普通的仅 GUI 模式或 app-with-messages
用于带命令提示符的 gui window。
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
脚本?
如果我对你的问题的理解正确,你是在尝试根据正在使用的 OS 来改变你的 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
我在开发一个向控制台发送消息的 GUI 程序。大多数时候可以忽略消息,因此不需要控制台 window。 Linux 用户只需选择从 shell 会话或 window 管理器启动 app
即可选择显示或不显示消息。 Windows 用户需要 运行 不同的脚本:app
用于普通的仅 GUI 模式或 app-with-messages
用于带命令提示符的 gui window。
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
脚本?
如果我对你的问题的理解正确,你是在尝试根据正在使用的 OS 来改变你的 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