繁体   English   中英

在setup.py中:对Windows和Linux使用不同的console_script吗?

[英]In setup.py: use a different console_script for Windows and Linux?

我在一个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的“针对他们的冗余app-with-messages脚本?

如果我正确理解了您的问题,则您正在尝试根据所使用的操作系统来更改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']}

reprexpy软件包创建于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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM