我的目標是創建一個Amazon Lambda函數,通過python使用pdflatex工具將.tex文件編譯爲.pdf。捆綁pdflatex以在具有自定義AMI映像的AWS Lambda上運行
我已經建立了使用Amazon的AMI的EC2實例和用yum安裝pdflatex:
yum install texlive-collection-latex.noarch
這樣一來,我可以使用pdflatex和我的Python代碼工作,編制我.tex成。 PDF我想要的方式。
現在,我需要創建一個包含pdflatex工具的.zip文件包; latexcodec(我用過的一個python庫,這個沒有問題);和我的Python文件:處理程序(lambda函數處理程序)和工人(編譯我的.tex文件)。
該軟件包是將代碼和庫上傳到Amazon Lambda所需的部署軟件包。
問題是:pdflatex有很多依賴關係,我必須在一個地方收集所有東西。我發現一個腳本這是否對我來說:
http://www.metashock.de/2012/11/export-binary-with-lib-dependencies/
我已經把我的路徑來尋找在新目錄中pdflatex二進制這樣我就可以使用它,我有一個問題:pdflatex couldn」找到一些依賴關係。我能夠通過一個環境變量設置爲文件夾來修復它在腳本感動一切:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/ec2-user/lambda/local/lib64:/home/ec2-user/lambda/local/usr/lib64"
在這一點上,我是直接運行pdflatex,通過慶典。
mktexfmt: No such file or directory
I can't find the format file `pdflatex.fmt'!
我也能夠通過pdflatex.fmt
和texmf.cnf
文件移動到我的包文件夾,並設置一些環境變量,以及對解決這個問題::
export TEXFORMATS=/home/ec2-user/lambda/local/usr/bin
而現在,我目前的問題,python腳本不斷拋出以下錯誤:
---! /home/ec2-user/lambda/local/usr/bin/pdflatex.fmt doesn't match pdftex.pool
(Fatal format file error; I'm stymied)
我已經缶找出一些可能的解決方案;刪除.texmf-var
文件夾,在我的情況下,它不存在;使用fmtutil
,我沒有在我的AMI圖像中...
1 - 我是否缺少任何環境變量?
2 - 或者錯誤地移動我的pdflatex二進制文件及其所有依賴項?
3 - 是否有任何正確的方法來移動二進制文件及其所有依賴項,以便可以在其他機器中使用它(考慮env變量)?
我知道,我使用這個實例,因爲它與lambda函數使用的基礎結構相同。所以它不會有任何兼容性問題。但在將所有內容放入zip文件之前,我必須確保我的python處理程序可以使用來自一個地方的所有內容(int,本例中爲/ home/ec2-user/lambda/local),然後我將它更改爲'var /任務/'壓縮一切。 當然,一切都是隻讀的,我使用yum來設置pdflatex,這樣我就可以將它捆綁到我的部署包中 –