我正在PySide2的这个模板项目上工作。
正如您在文档中所读到的,用户必须手动将lrelease.exe
的路径添加到PATH
或添加到一个名为LRELEASE_BIN
的新环境变量。
资源和翻译
为了简化开发过程,提供Qt Creator项目app.pro。您可以打开它进行编辑UI文件或管理资源。可以使用Qt Linguist, Qt SDK的一部分。为了建立翻译,您需要在PATH上设置lrelease命令,或者设置其LRELEASE_BIN环境变量的完整路径。UI文件,翻译和资源可以这样构建:
python setup.py build_res
作为我对我的分支所做的更改的一部分,我想使用安装在虚拟环境中的PySide2
包中的lrelease
。
它将避免必须安装Qt并使所有依赖项自包含。问题是,当我尝试用lrelease.exe
python.exe .setup.py build_res
时lrelease = ".venv/Lib/site-packages/PySide2/lrelease.exe"
check_call([lrelease, "app.pro"])
我得到以下错误:
"C:/Users/my_user/path_to_my_project/.venv/Lib/site-packages/PySide2/lrelease-pro.exe" Not Recognized As an Internal or External Command
和
subprocess.CalledProcessError: Command '['.venv/Lib/site-packages/PySide2/lrelease.exe', 'app.pro']' returned non-zero exit status 1.
是否有办法依赖由pip安装的lrelease
可执行文件?
根据错误消息判断,您启动的lrelease.exe
程序似乎执行了目录.venv/Lib/site-packages/PySide2/
中不存在的lrelease-pro.exe
。我可以确认,在Windows上包含PySide2 5.15.2的虚拟环境中,我自己没有这样的程序,只有lrelease.exe
:
$ find .venv/ -name "*lrelease*"
.venv/Lib/site-packages/PySide2/lrelease.exe
考虑到lrelease.exe
在.venv/Lib
而不是.venv/Scripts
中,感觉它不是由PySide2提供的目的是供用户使用,而pyside2-lupdate.exe
在.venv/Scripts
中。在Linux上,lrelease
甚至没有在.venv/lib
中提供,它完全不存在。
所以我打赌不,目前不支持使用pip
安装的lrelease.exe
可执行文件作为PySide2的一部分。潜在的替代品:
如果
lrelease.exe
也由Qt Creator提供,则可以单独安装Qt Creator,而不是与完整的Qt SDK一起安装,这是非常大的。查找"lrelease";在PyPI上生成distutil -ui和setup_qt,听起来它们可能提供
lrelease
可执行文件。