我正在尝试使用PyInstaller从PyQt5
GUI创建macOS独立应用程序。除了使用pdflatex模块(与Pylatex结合使用)从TEX文件自动生成PDF之外,所有这些都可以工作。
pylatex
和pdflatex
模块都需要调用子进程模块,其操作如下:
fp = subprocess.run(args, input=self.latex, env=env, timeout=15, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
其中args=['pdflatex', '-output-directory=/Users/Desktop', '-interaction-mode=batchmode', '-jobname=test']
然而,这在捆绑的应用程序中不起作用,因为它正在崩溃,我正在将以下错误记录到文件中:
[Errno 2] No such file or directory: 'pdflatex'
显然,pdflatex
可执行文件没有包含在包中。在终端中运行which pdflatex
,输出如下目录:/Library/TeX/texbin/pdflatex
所以我尝试用以下PyInstaller命令添加路径:
pyinstaller --noconsole --onefile --path "/Library/TeX/texbin" main.py
但是应用程序在运行时仍然找不到pdflatex
可执行文件,而终端可执行文件工作没有问题。我已经把网上所有类似的帖子都写完了,没有办法尝试了,所以我希望有人能指导我解决这个问题。
相关信息:
- macOS version: 10.13.6 High Sierra
- Python: 3.8
- PyInstaller: 5.1
我有同样的问题,我只是通过编辑PyInstaller生成的运行时环境来解决它。在我的情况下,npm
命令没有找到,在终端运行which npm
后,我可以看到npm位于/usr/local/bin
, macOS上的PyInstaller不包括的路径。
local_bin = '/usr/local/bin'
if local_bin not in os.environ["PATH"]:
os.environ["PATH"] += os.pathsep + local_bin