子进程pythontex无法工作

子进程pythontex无法工作,python,latex,subprocess,pdflatex,Python,Latex,Subprocess,Pdflatex,此脚本使用pythontex创建ask.tex的LaTeX版本。python代码包括子流程,完整的python代码runme.py是 #Python 3.4.3 import sys import os import re import subprocess import shutil subprocess.call(['pdflatex', 'Ask.tex']) subprocess.call([sys.executable, 'pythontex.py', 'Ask.tex']) su

此脚本使用pythontex创建ask.tex的LaTeX版本。python代码包括
子流程
,完整的python代码
runme.py

#Python 3.4.3
import sys
import os
import re
import subprocess
import shutil


subprocess.call(['pdflatex', 'Ask.tex'])
subprocess.call([sys.executable, 'pythontex.py', 'Ask.tex'])
subprocess.call(['pdflatex', 'Ask.tex'])
\documentclass{article}
\usepackage{ragged2e}
\usepackage[utf8]{inputenc}
\usepackage[letterpaper, top=0.5in, bottom=0.5in, left=1.55in, right=1.55in]{geometry}
\usepackage{multirow,array,varwidth,spreadtab,caption}
\usepackage[norule]{footmisc}
\usepackage{color, colortbl}
\usepackage{xcolor}
\usepackage{multicol}
\usepackage{pythontex}

\begin{document}
\begin{pycode}[][]
import mysql.connector
conn=mysql.connector.connect(user='root',password='oilwell',host='localhost',database='sqlpush1')
mycursor=conn.cursor()
query=("SELECT oil from results WHERE DATE(`date`) = '2029-01-01'")
mycursor.execute(query)
data= mycursor.fetchall()
for row in data:
    print("{}".format(row[0]))
mycursor.close()
conn.close()
\end{pycode}
\begin{table}[ht]
\begin{center}
\begin{tabular}{|c|c|c|c|c|}
    \multicolumn{5}{c}{\textbf{NET ENTITLEMENT FISH OIL MARKETS}}\\
    \multicolumn{5}{c}{\textbf{AS OF DECEMBER 31, 2019}}\\\hline
    %\rowcolor{Cyan}
    \multicolumn{1}{|c|}{\multirow{2}{*}{Country}}&\multicolumn{1}{c|}{\multirow{2}{*}{Company}}&Proved Cooked&Proved Uncooked&Total Proved\\
    %\rowcolor{Cyan}
    \multicolumn{1}{|c|}{}&\multicolumn{1}{c|}{}&(T)&(T)&\cellcolor{blue!25}(T)\\\hline
    ChUAN& \pyc{print("{}".format(row[0]))} &51,574&31,202&82,776\\\hline
    IraW-West POINT &  & 9,656 &57,981&67,637\\\hline
     \multicolumn{1}{|c|}{\multirow{3}{*}{KAZSLSKDE}}& PKKR& 32,129 &5,174& 37,304 \\\cline{2-5}
     \multicolumn{1}{|c|}{}&KOLKOL&9,718&3,447&13,165\\\cline{2-5}
     \multicolumn{1}{|c|}{}&PKPK&424&0&424\\\hline
     TOTAL CNNNO & & 103,501 & 97,804 & 201,306\\\hline
\end{tabular}
\end{center}
\label{tab:multicol}
\end{table}

\end{document}
乳胶代码是

#Python 3.4.3
import sys
import os
import re
import subprocess
import shutil


subprocess.call(['pdflatex', 'Ask.tex'])
subprocess.call([sys.executable, 'pythontex.py', 'Ask.tex'])
subprocess.call(['pdflatex', 'Ask.tex'])
\documentclass{article}
\usepackage{ragged2e}
\usepackage[utf8]{inputenc}
\usepackage[letterpaper, top=0.5in, bottom=0.5in, left=1.55in, right=1.55in]{geometry}
\usepackage{multirow,array,varwidth,spreadtab,caption}
\usepackage[norule]{footmisc}
\usepackage{color, colortbl}
\usepackage{xcolor}
\usepackage{multicol}
\usepackage{pythontex}

\begin{document}
\begin{pycode}[][]
import mysql.connector
conn=mysql.connector.connect(user='root',password='oilwell',host='localhost',database='sqlpush1')
mycursor=conn.cursor()
query=("SELECT oil from results WHERE DATE(`date`) = '2029-01-01'")
mycursor.execute(query)
data= mycursor.fetchall()
for row in data:
    print("{}".format(row[0]))
mycursor.close()
conn.close()
\end{pycode}
\begin{table}[ht]
\begin{center}
\begin{tabular}{|c|c|c|c|c|}
    \multicolumn{5}{c}{\textbf{NET ENTITLEMENT FISH OIL MARKETS}}\\
    \multicolumn{5}{c}{\textbf{AS OF DECEMBER 31, 2019}}\\\hline
    %\rowcolor{Cyan}
    \multicolumn{1}{|c|}{\multirow{2}{*}{Country}}&\multicolumn{1}{c|}{\multirow{2}{*}{Company}}&Proved Cooked&Proved Uncooked&Total Proved\\
    %\rowcolor{Cyan}
    \multicolumn{1}{|c|}{}&\multicolumn{1}{c|}{}&(T)&(T)&\cellcolor{blue!25}(T)\\\hline
    ChUAN& \pyc{print("{}".format(row[0]))} &51,574&31,202&82,776\\\hline
    IraW-West POINT &  & 9,656 &57,981&67,637\\\hline
     \multicolumn{1}{|c|}{\multirow{3}{*}{KAZSLSKDE}}& PKKR& 32,129 &5,174& 37,304 \\\cline{2-5}
     \multicolumn{1}{|c|}{}&KOLKOL&9,718&3,447&13,165\\\cline{2-5}
     \multicolumn{1}{|c|}{}&PKPK&424&0&424\\\hline
     TOTAL CNNNO & & 103,501 & 97,804 & 201,306\\\hline
\end{tabular}
\end{center}
\label{tab:multicol}
\end{table}

\end{document}
Pythontex需要三个步骤来编译文件,首先运行
pdflatex
,然后运行'Pythontex file.py',然后再次运行
pdflatex

我将
runme.py
ask.tex
放在pythontex文件夹下,其中包含
pythotex.py
文件

在空闲模式下运行
runme.py
后,可以执行pdflatex,并弹出cmd提示符窗口并顺利完成但问题是,我看不到
pythontex.py
正在运行,这导致输出pdf文件没有任何更改。

非常感谢您对这个问题的任何意见和帮助。非常感谢

[更新] 我将python代码编辑成

import sys
import os
import re
import subprocess
import shutil


subprocess.call(['pdflatex', 'Ask.tex'])
try:
    subprocess.call(['pythontex', 'Ask.tex'])
except:
    subprocess.call(['pythontex.py', 'Ask.tex'])
subprocess.call(['pdflatex', 'Ask.tex'])
同样,可以执行
pdflatex
,但是,存在一些错误

Traceback (most recent call last):
  File "C:\Users\Cheng\Desktop\LaTeX Project\pythontex\runme2.py", line 10, in <module>
    subprocess.call(['pythontex', 'Ask.tex'])
  File "C:\Python34\lib\subprocess.py", line 537, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:\Python34\lib\subprocess.py", line 859, in __init__
    restore_signals, start_new_session)
  File "C:\Python34\lib\subprocess.py", line 1112, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Cheng Zhang\Desktop\LaTeX Project\pythontex\runme2.py", line 12, in <module>
    subprocess.call(['pythontex.py', 'Ask.tex'])
  File "C:\Python34\lib\subprocess.py", line 537, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:\Python34\lib\subprocess.py", line 859, in __init__
    restore_signals, start_new_session)
  File "C:\Python34\lib\subprocess.py", line 1112, in _execute_child
    startupinfo)
OSError: [WinError 193] %1 is not a valid Win32 application
回溯(最近一次呼叫最后一次):
文件“C:\Users\Cheng\Desktop\LaTeX Project\pythontex\runme2.py”,第10行,在
调用子进程(['pythontex','Ask.tex']))
调用中第537行的文件“C:\Python34\lib\subprocess.py”
将Popen(*popenargs,**kwargs)作为p:
文件“C:\Python34\lib\subprocess.py”,第859行,在\uuu init中__
恢复信号,启动新会话)
文件“C:\Python34\lib\subprocess.py”,第1112行,在执行子进程中
startupinfo)
FileNotFoundError:[WinError 2]系统找不到指定的文件
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Users\Cheng Zhang\Desktop\LaTeX Project\pythontex\runme2.py”,第12行,在
调用子进程(['pythontex.py','Ask.tex']))
调用中第537行的文件“C:\Python34\lib\subprocess.py”
将Popen(*popenargs,**kwargs)作为p:
文件“C:\Python34\lib\subprocess.py”,第859行,在\uuu init中__
恢复信号,启动新会话)
文件“C:\Python34\lib\subprocess.py”,第1112行,在执行子进程中
startupinfo)
OSError:[WinError 193]%1不是有效的Win32应用程序

这是一个新问题核心问题,Python不会运行。

在做了一些研究之后,我发现这种方法可以完美地解决问题

#Python 3.4.3
import sys
import os
import re
import subprocess
import shutil


subprocess.call(['pdflatex', 'ask.tex'])
try:
    subprocess.call(['pythontex', 'ask.tex'], shell=True)
except:
    subprocess.call(['pythontex.py', 'ask.py'], shell=True)
subprocess.call(['pdflatex', 'ask.tex'])

关键部分是add,
shell=True
,否则Python将无法识别该语句

经过研究,我发现这种方法可以完美地解决问题

#Python 3.4.3
import sys
import os
import re
import subprocess
import shutil


subprocess.call(['pdflatex', 'ask.tex'])
try:
    subprocess.call(['pythontex', 'ask.tex'], shell=True)
except:
    subprocess.call(['pythontex.py', 'ask.py'], shell=True)
subprocess.call(['pdflatex', 'ask.tex'])

关键部分是add,
shell=True
,否则Python将无法识别该语句

你试过传递完整路径吗?@padraiccnningham不,你能告诉我怎么做吗?
pdflatex
在cmd提示符下工作吗?您的cwd中是否也有
'Ask.tex'
?@padraiccnningham是的,'pdflatex'在cmd提示符下工作,我不确定您所说的cwd是什么意思?当前工作目录您是否尝试过传递完整路径?@padraiccnningham否,您能告诉我如何使用
pdflatex
在cmd提示符下工作吗?您的cwd中是否也有
'Ask.tex'
?@padraiccnningham是的,'pdflatex'正在cmd提示符下工作,我不确定您所说的cwd是什么意思?当前工作目录