Обратите внимание, что pyplot.show()
блокирует до тех пор, пока вы не закроете окно.
Если вы создаете графики для своих документов LaTeX, просто удалите pyplot.show()
.
Убедитесь, что Python действительно может найти latex
, dvipng
и gs
. (Я ожидаю, что вы получите сообщение об ошибке, если это не так, но я не использовал python/matplotlib в ms-windows, поэтому я не уверен.) То есть их расположение должно быть в вашей среде PATH
переменная. См. документацию matplotlib по переменным среды.
Попробуйте следующее в интерактивном сеансе Python:
>>> import subprocess
>>> subprocess.call(['latex', '--version'])
pdfTeX 3.14159265-2.6-1.40.17 (TeX Live 2016)
kpathsea version 6.2.2
Copyright 2016 Han The Thanh (pdfTeX) et al.
There is NO warranty. Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
Compiled with libpng 1.6.21; using libpng 1.6.21
Compiled with zlib 1.2.8; using zlib 1.2.8
Compiled with xpdf version 3.04
0
Материалы о версии TeX вполне могут отличаться; это зависит от того, какую версию дистрибутива TeX вы используете. Самое важное — последняя строка; это возвращаемое значение subprocess.call
и должно быть 0, указывая на то, что команда не возвращает ошибки.
Если subprocess.call
вызывает исключение (как показано ниже; не уверен, что оно будет таким же в ms-windows), вам нужно изменить PATH
, чтобы python мог найти LaTeX и другие необходимые ему вещи.
>>> subprocess.call(['foo', '--version'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/subprocess.py", line 168, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/local/lib/python2.7/subprocess.py", line 390, in __init__
errread, errwrite)
File "/usr/local/lib/python2.7/subprocess.py", line 1024, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Редактировать: Если это не проблема, возможно, TeX не завершает работу. Попробуйте запустить скрипт. Когда вы получите диалоговое окно с ошибкой, посмотрите в диспетчере задач, не запущен ли еще процесс (la)tex. Посмотрите на код LaTeX, который вы используете, и попробуйте запустить его в LaTeX, чтобы убедиться, что он действительно действителен. Может зависнуть на ошибке...
person
Roland Smith
schedule
11.01.2017
command prompt
не то же самое, чтоcmd.exe
? Если это так, никакой ошибки не отображается, кроме всплывающего окна, сообщающего мне, чтоpython.exe
перестал работать, и закрыть программу. - person Aldahunter   schedule 12.01.2017