Scenario
I am compiling a latex document from python 3.6 in Anaconda 4.8.2 on a Windows 10 Pro N device. To do so, I created a python 3.6 environment in Anaconda Prompt, installed miktex in anaconda with command:
conda install -c conda-forge miktex
And execute the following python code with self.create_pdf('test/main.tex','test/main.pdf')
:
def create_pdf(self, input_filename, output_filename):
process = subprocess.Popen([
'latex', # Or maybe 'C:\\Program Files\\MikTex\\miktex\\bin\\latex.exe
'-output-format=pdf',
'-job-name=' + output_filename,
input_filename])
process.wait()
The latex in question uses, among others, package \usepackage{qrcode}
. This causes the python script to manually prompt permission to install the packages as shown in the image below.
Question
How can I compile the latex silently by automatically installing all required packages?
Attempts
In accordance with the latex --help
documentiation, I tried running the Anaconda prompt as administrator and passing the -enable-installer
. I verified that the manual command latex -output-format=pdf -job-name="test/main.pdf" "test/main.tex" -enable-installer
skips the request for permission. Hence, I tried to pass the -enable-installer at the very end with code:
def create_pdf(self, input_filename, output_filename):
string = f'latex -output-format=pdf -job-name="{input_filename}" "{output_filename}" -enable-installer'
process = subprocess.Popen([string])
process.wait()
which still prompts for permission even though copy pasting the string in cmd does not.
Best Answer
Thanks to the comment of Teepeemm, a solution is found in the form of:
The problems in my attempts were:
-enable-installer
argument.-enable-installer
argument, I had also rewritten the command from list format with a single argument per list element to all the arguments in a single list element. This yielded an invalid command even though the-enable-installer
command was included. I did not notice this mistake because I forgot I placed a command before my attempts which generated an error which I attributed to the attempt.Doubts