Community
    • Login

    Python plugin works in NPP 7.7 but does work in NPP 7.8 upward

    Scheduled Pinned Locked Moved Notepad++ & Plugin Development
    24 Posts 2 Posters 1.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Stier HahnS
      Stier Hahn @Ekopalypse
      last edited by

      @Ekopalypse i’ve bin using same setup. I.e. only plugin dll is located in plugin dir. And python dir in path.

      EkopalypseE 1 Reply Last reply Reply Quote 2
      • EkopalypseE
        Ekopalypse @Stier Hahn
        last edited by

        @Stier-Hahn
        and there is no other python3 dll (64bit) in the path before the 32bit one?

        Stier HahnS 1 Reply Last reply Reply Quote 0
        • Stier HahnS
          Stier Hahn @Ekopalypse
          last edited by Stier Hahn

          @Ekopalypse will check tmr in more details.

          I can tell for sure (99%) I do not have any 64 bit builds of python on my box.

          Ps
          I’m still wondering that it works for me in 7.7 but not in 7.8. Just for my understanding were there any changes that could cause such behavior? Changes in dll lookup order or something

          1 Reply Last reply Reply Quote 0
          • EkopalypseE
            Ekopalypse
            last edited by

            Starting from 7.8 plugins are allowed to load their own dlls from within the plugin directory.

            1 Reply Last reply Reply Quote 2
            • EkopalypseE
              Ekopalypse
              last edited by

              Ah - could it be that path is not evaluted anymore? I guess so.

              Stier HahnS 1 Reply Last reply Reply Quote 1
              • Stier HahnS
                Stier Hahn @Ekopalypse
                last edited by

                @Ekopalypse could you please check if it works for you if python dll is located in path and not in plugin dir

                EkopalypseE 2 Replies Last reply Reply Quote 0
                • EkopalypseE
                  Ekopalypse @Stier Hahn
                  last edited by

                  @Stier-Hahn - currently trying

                  EkopalypseE 1 Reply Last reply Reply Quote 0
                  • EkopalypseE
                    Ekopalypse @Ekopalypse
                    last edited by Ekopalypse

                    @Stier-Hahn
                    Yes, it is not found but then I do get

                    6925989c-f96a-49a9-bc06-d9fe35ba80a0-image.png

                    1 Reply Last reply Reply Quote 1
                    • EkopalypseE
                      Ekopalypse
                      last edited by

                      and next window is
                      81824459-8282-4997-9a08-23912af2543b-image.png

                      1 Reply Last reply Reply Quote 0
                      • EkopalypseE
                        Ekopalypse
                        last edited by

                        but npp 7.7 works.

                        1 Reply Last reply Reply Quote 1
                        • EkopalypseE
                          Ekopalypse @Stier Hahn
                          last edited by

                          @Stier-Hahn

                          I start to remember that I read some conversation about
                          security concerns regarding sideloading dlls.

                          Stier HahnS 1 Reply Last reply Reply Quote 1
                          • Stier HahnS
                            Stier Hahn @Ekopalypse
                            last edited by

                            @Ekopalypse so, I’ve tested my minimal plugin build in 7.8 with python37.dll inside plugin dir and it works.

                            My question from the top of the thread has been solved.

                            Thank you very much!

                            ps

                            I still need to check if my main plugin will be working…
                            Struggling to upgrade third-party libs and other dependencies…

                            1 Reply Last reply Reply Quote 2
                            • EkopalypseE
                              Ekopalypse
                              last edited by

                              If there is anything we can do to help let us know.

                              Stier HahnS 1 Reply Last reply Reply Quote 0
                              • Stier HahnS
                                Stier Hahn @Ekopalypse
                                last edited by Stier Hahn

                                @Ekopalypse you are doing great job , thank you !

                                ps
                                I came across a next roadblock , that’s more a pywin32 issue.

                                See https://github.com/mhammond/pywin32/issues/1658

                                May be you would have a hint how to troubleshoot that. as that seems to be sort of related to dependency lookup process.

                                In a nutshell I’ve NPP plugin linked against boost::python which loads at startup some initialization python code. And it’s was working fine under py 3.7 and npp 7.7.

                                Finally ( with your help) I managed to upgrade npp from 7.7 to 7.9
                                and partially from winpython 3.7 to winpython 3.8.

                                My NPP python plugin is loaded at startup, but execution of initialsation python scripts fails to import win32api.
                                Embedded python wrapper is working fine ( I guess ) as import os / import sys and other simple code is working inside my plugin.

                                I’m using win py 3.8 and latest pywin32 ( 300)

                                Stier HahnS 1 Reply Last reply Reply Quote 0
                                • Stier HahnS
                                  Stier Hahn @Stier Hahn
                                  last edited by

                                  @Stier-Hahn pywin32 is installed sort of correctly as it works from python command line.

                                  EkopalypseE 1 Reply Last reply Reply Quote 0
                                  • EkopalypseE
                                    Ekopalypse @Stier Hahn
                                    last edited by

                                    @Stier-Hahn

                                    there is an additional
                                    ...\AppData\Roaming\Python\Python38\site-packages
                                    path when used by the command line.
                                    Maybe give it a try to add it to your sys.path from embedded python.

                                    Do you know procmon?
                                    It could be used to see what npp and your plugin tries to load with a filter set to path contains whatever

                                    48b96c60-c947-48f4-9987-af19cf359c3d-image.png

                                    If importing pywin32 failed with unable to load dll
                                    then one of those
                                    2f2d6355-c2f6-4c2c-b92d-c49ef97d7714-image.png
                                    can not be found I guess.
                                    python38 shouldn’t be the problem but pywintypes38.dll might be in this additional path I’ve mentioned earlier??

                                    Stier HahnS 1 Reply Last reply Reply Quote 2
                                    • Stier HahnS
                                      Stier Hahn @Ekopalypse
                                      last edited by Stier Hahn

                                      @Ekopalypse cool, thanks for advice, turned out to be pywin32_system32 not being searched for some reason

                                      Untitled.png
                                      Apparently lookup path was (intentionally screwed up) modified

                                      I managed to fix my problem by placing pywintypes38.dll and pythoncom38.dll to NPP root

                                      1 Reply Last reply Reply Quote 2
                                      • First post
                                        Last post
                                      The Community of users of the Notepad++ text editor.
                                      Powered by NodeBB | Contributors