Python runs differently in NPP Exec Console vs Windows Console.

  • prefix  = '                                                                                               '
    body    = '┌──────────────────────────────────────────────────────────────┐'
    suffix  = '                                                                                               '

    Produces this error ONLY IN NPP EXEC CONSOLE (not in Windows console).

    NPP_SAVE: D:\EveMarketMaster\
    C:\Users\mltco\AppData\Local\Programs\Python\Python38\python.exe "D:\EveMarketMaster\"
    Process started (PID=11160) >>>
    Traceback (most recent call last):
      File "D:\EveMarketMaster\", line 8, in <module>
      File "C:\Users\mltco\AppData\Local\Programs\Python\Python38\lib\encodings\", line 19, in encode
        return codecs.charmap_encode(input,self.errors,encoding_table)[0]
    UnicodeEncodeError: 'charmap' codec can't encode characters in position 95-158: character maps to <undefined>
    <<< Process finished (PID=11160). (Exit code 1)

    I have a workaround, but I’d need to be able to detect from within the Python code whether I was running under the WINDOWS console or the NPP EXEC console and I can’t find any way to do that.

    Is there a fix for this?

  • @Mark-Tinney-0 said in Python runs differently in NPP Exec Console vs Windows Console.:

    prefix = ’ ’
    body = ‘┌──────────────────────────────────────────────────────────────┐’
    suffix = ’ ’


    Is this something you have under your control?
    If so, you could create a unique environment variable and check this from your script.
    Something like this.

    In NppExec execute you do

    set_env CALLED_FROM_NPP_EXEC=1
    D:\ProgramData\Python\Python_embed_382_64\python.exe "$(FULL_CURRENT_PATH)"
    env_unset CALLED_FROM_NPP_EXEC

    and in python script you do

    import os
    print(f'{"CALLED_FROM_NPP_EXEC" in os.environ = }')

Log in to reply