/ / Python CGI Преждевременно завършване на грешка в скрипта в зависимост от параметрите на скрипта - python, cgi, openbabel

Python CGI Преждевременно изчерпване на грешката на скрипта в зависимост от параметрите на скрипта - python, cgi, openbabel

Имам питънски скрипт, който трябва да анализира файли да произвеждат известен изход на диска, както и връщането на уеб страница, свързваща изходящите файлове. Когато се стартира с файл, публикуван от HTML формуляра, нямам изход на HTML код, само страница с грешки 500 и error_log съдържат реда:

[Mon Apr 19 15:03:23 2010] [грешка] [клиент xxx.xxx.121.79] Преждевременно завършване на скриптовите заглавки: uploadcml.py, referer: http://xxx.ch.cam.ac.uk:9000/

Въпреки това файловете, които скриптът трябва да записва, наистина се запазват на диск.

Ако го стартирам без аргументи, скриптът връща правилния HTML, показвайки, че не е бил анализиран нито един файл.

Цялата информация, която намерих в интернет заПреждевременният край на скриптовите заглавки предполага, че се дължи или на липсващо заглавие, или на липса на разрешения за питънския скрипт, но нито може да се приложи към мен.

Първите редове на сценария са:

#!/home/nwe23/bin/bin/python
import cgitb; cgitb.enable()
import cgi
import pybel,openbabel
import random
print "Content-Type: text/html"
print

така че, когато бягам, не виждам начин да не успееизвежда заглавката и тя извежда заглавката, когато се изпълнява без да се анализира файл, но при даден файл се генерира грешката (но все още се анализира файла и се записва изхода на диск!).

Някой знае ли как се случва това и какво може да се направи, за да се реши?

Опитах се да добавим неправилно разчленени глупости(като foobar) в различни точки във файла и това води до добавянето на грешка в абзац на error_log където и да е, дори и да е последният ред в скрипта. Грешката при предсрочните скриптове обаче остава. Това означава ли, че скриптът изпълнява целия път?

[РЕДАКТИРАНЕ] Успях да го накарам да работи сегаизглежда, че едно от обажданията към външна C ++ библиотека чрез SWIG е неуспешно, но не е имало полезно съобщение за грешка. Поправих проблема с това, а сега скриптът работи правилно.

Изненадващо е, че единствената грешка в error_log беше за заглавките на скриптове, когато някои отдалечени библиотечни повиквания се провалиха. Предполагам, че има опасност да се позове на не-питън код? [/РЕДАКТИРАНЕ]

Отговори:

1 за отговор № 1

Когато C библиотеката получи грешка при сегментиране или по друг начин излезе по лош начин, буферът за стандартния стандарт може да не бъде зачервен. Използвайки -u опцията за интерпретация на Python или ръчно заличаване трябва да реши "Преждевременно завършване на скриптовите заглавки", но няма да помогне с реалния проблем.