Надежное обнаружение Spyder IDE

Как мне надежно определить, выполняется ли скрипт / модуль в IDE Spyder?

У меня возникла проблема с запуском ocrmypdf в IDE Spyder. Он работает в командной строке cmd и anaconda. Он выдает ошибки при запуске в IDE spyder, на Windows 7 и 10, на различных машинах, различных новых / старых настройках Anaconda. (Подробнее об ошибках см. В заглушке и встроенных комментариях ниже.) Разработчик ocrmypdf предположил, что это связано с тем, что многопроцессорность не работает в IDE spyder (многопроцессорность Python не работает в IDE Spyder). Я хочу знать, есть ли надежный метод определения того, запускается ли ocrmypdf или какой-либо скрипт / модуль в IDE Spyder.

По сути, это повторение: Определить, где выполняется код Python (например, в интерпретаторе Spyder, IDLE и cmd)

Я снова задаю этот вопрос, потому что вопрос был первоначально задан в 2013 году, и ответ был принят - проверка переменных среды, которые spyder устанавливает в os.environment - работает, но имеет риск ложных срабатываний.

Если есть более умный способ решить эту проблему, пожалуйста, дайте мне знать!

      
import os, io
import ocrmypdf
from wand.image import Image as Img

try:
    from PIL import Image
except ImportError:
    import Image
    
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"


ocrmypdf_exitcodes = {0:'ok', 1:'bad_args', 2:'input file', 3:'missing_dependency', 
                      4:'invalid_output_pdf', 5:'file_access_error', 6:'already_done_ocr', 
                      7:'child_process_error', 8:'encrypted_pdf', 9:'invalid_config', 
                      10:'pdfa_conversion_failed', 15:'other_error', 130:'ctrl_c'}

path = "C:\Users\public\Documents"
tess_lang = "eng"

#Test files from https://github.com/jbarlow83/OCRmyPDF/tree/master/tests/resources

file = "skew.pdf" #works
file = "cardinal.pdf" #breaks at scanning contents section/it's been 20 minutes with no progress past first page
file = "c02-22.pdf" #Breaks at OCR section on first page - logs say 0.5 and then it stalls for 10+ minutes. Sometimes breaks by saying [Errno9] Bad File Descriptor instead.


pdf = os.path.join(path, file)
try:
    filename = pdf.rsplit('.', 1)[0]+'_new.pdf'
    ocrmypdf.ocr(input_file = pdf, output_file = filename, language = '+'.join(list(set([tess_lang, 'eng']))), rotate_pages=True, deskew=True, force_ocr = False)
except Exception as e:
    filename = pdf
    print('Error occurred when trying to process file {} error message is: {}'.format(pdf, repr(e) + " " + str(e)))
    print(repr(e))
    try:
        print(ocrmypdf_exitcodes[e.returncode])
    except:
        pass

0 ответов

Другие вопросы по тегам