我在Python 2.7中编写了一些代码,它将从.ini文件中读取一个字符串,并使用sympy.preview
以LaTeX格式生成字符串的.png图像。我的想法是使用此脚本在我输入时在后台生成图像。问题是即使我在后台运行脚本(使用pythonw.exe),也会弹出两个空的命令行窗口latex.exe
和dvipng.exe
并立即关闭。这很烦人,因为它会打断我的输入。我希望能够做到这一点"在飞行中"没有被打断。
有没有办法阻止这些窗户打开?
这是我的最低工作示例:
from sympy import preview # for generating Latex images
import ConfigParser # for reading .ini files
# read the latex commands from the .ini file:
config = ConfigParser.RawConfigParser()
config.read('mathPredictor.ini')
one = config.get('Words', 'one')
prefix = '\\Huge $' # make the Latex equations bigger
suffix = '$'
eqone = prefix + one + suffix
# for generating Latex images:
preview(eqone, viewer='file', filename='one.png', euler=False)
用于.ini文件
[Words]
one=\alpha
我使用Python 2.7.10运行Windows 8 64位。这个问题在tex.SE交叉发布。
答案 0 :(得分:1)
我解决了自己的问题。如果我从以前存在的cmd实例运行Python脚本,则窗口不会弹出。我的解决方案是启动一个隐藏的cmd实例,并将路径位置发送到隐藏的cmd窗口。这使得Python代码能够在没有来自latex.exe
和dvipng.exe
的烦人弹出窗口的情况下执行。
我使用以下函数在Autohotkey语言中完成了此操作:
Run, %comspec%, , max, pid2 ; runs cmd in hidden mode with instance name given by %pid%
WinWait, ahk_pid %pid2% ; waits for instance to be active
ControlSend, ,python mypythonscript.py`r, ahk_pid %pid2% ; send text for script execute