【发布时间】:2021-05-14 04:09:07
【问题描述】:
我有一个 Python GUI 应用程序(使用 PyQt5 或 PySide2),我想从命令 mypackage 开始。因此,我在setup.cfg 中添加了以下部分:
[options.entry_points]
gui_scripts =
mypackage = mypackage:main
在 Linux 和 macOS 上,使用 pip 安装软件包成功创建了一个启动应用程序的 mypackage 命令。但是,在 Windows 上,我在 Git Bash 终端中输入 mypackage 后收到一条错误消息:弹出一个标题为“启动器中的致命错误”的对话框,显示“stderr 复制失败”。请注意,当我使用命令提示符 (cmd.exe) 或 Power Shell (powershell.exe) 时,一切正常。
相关包结构:
mypackage/
mypackage/
__init__.py
__main__.py
pyproject.toml
setup.cfg
__init__.py:
import sys
from PySide2.QtCore import Qt
from PySide2.QtWidgets import QApplication, QLabel
def main():
app = QApplication(sys.argv)
label = QLabel("Hello World", alignment=Qt.AlignCenter)
label.show()
sys.exit(app.exec_())
__main__.py:
from . import main
if __name__ == "__main__":
main()
pyproject.toml:
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
setup.cfg:
[metadata]
name = mypackage
version = 0.0.1
[options]
packages = mypackage
[options.entry_points]
gui_scripts =
mypackage = mypackage:main
重现步骤:
- 安装 Python(来自 https://www.python.org/ 的 3.9.8),然后安装
pip install PySide2 - 在 Windows 上打开 Git Bash 并切换到根项目文件夹
mypackage pip install .- 输入
mypackage- 弹出错误对话框
同样,如果我在第 3 步中使用命令提示符或 Power Shell,一切正常!
所有文件都在这个 repo 中可用:https://github.com/cbrnr/stderr-duplication
【问题讨论】:
标签: python windows git-bash setuptools pyside2