Broken MySql driver for PySide2 on Windows?












1














I've been forced to try to port to PySide2 from PySide because I'm developing code (on Windows 7) used inside Maya and Maya 2017 has moved to PySide2.



PySide2 ships with Maya but only comes with the driver to talk to sqlite DBs. So I need to tell Qt about a new DIR that contains the MySql driver, like this:



from PySide2 import QtWidgets
QtWidgets.QApplication.addLibraryPath("C:tempplugins")


This DIR contains a sub sqldrivers DIR which contains the driver. This works- when I call QtSql.QSqlDatabase.drivers() the new one is there so I've got the right driver and it's being picked up.



However when I create a new DB and call open:



db = QtSql.QSqlDatabase.addDatabase("QMYSQL3")
db.setDatabaseName("my_db")
db.setHostName("host")
db.setUserName("user")
db.setPassword("password")
db.open()


the open command returns False and the DB is not accessible. I call:



db.lastError()


and get:



# Result: <PySide2.QtSql.QSqlError("", "Driver not loaded", "Driver not loaded")  at 0x0000000075410C08> # 


NB: we successfully did the exact same thing with the previous PySide version.



Other threads mention similar things and it turned out to be missing the actual libmysql.dll, which is the actual MySql DLL and can result in the same error if missing. However I definitely have this on my system and it's definitely in the PATH. It's actually the same file that is being successfully picked up through PySide. But the PySide2 driver just wont open a connection to the DB.



I suspect maybe a dodgy driver but wondered if anyone has any experience with this or any advice?










share|improve this question





























    1














    I've been forced to try to port to PySide2 from PySide because I'm developing code (on Windows 7) used inside Maya and Maya 2017 has moved to PySide2.



    PySide2 ships with Maya but only comes with the driver to talk to sqlite DBs. So I need to tell Qt about a new DIR that contains the MySql driver, like this:



    from PySide2 import QtWidgets
    QtWidgets.QApplication.addLibraryPath("C:tempplugins")


    This DIR contains a sub sqldrivers DIR which contains the driver. This works- when I call QtSql.QSqlDatabase.drivers() the new one is there so I've got the right driver and it's being picked up.



    However when I create a new DB and call open:



    db = QtSql.QSqlDatabase.addDatabase("QMYSQL3")
    db.setDatabaseName("my_db")
    db.setHostName("host")
    db.setUserName("user")
    db.setPassword("password")
    db.open()


    the open command returns False and the DB is not accessible. I call:



    db.lastError()


    and get:



    # Result: <PySide2.QtSql.QSqlError("", "Driver not loaded", "Driver not loaded")  at 0x0000000075410C08> # 


    NB: we successfully did the exact same thing with the previous PySide version.



    Other threads mention similar things and it turned out to be missing the actual libmysql.dll, which is the actual MySql DLL and can result in the same error if missing. However I definitely have this on my system and it's definitely in the PATH. It's actually the same file that is being successfully picked up through PySide. But the PySide2 driver just wont open a connection to the DB.



    I suspect maybe a dodgy driver but wondered if anyone has any experience with this or any advice?










    share|improve this question



























      1












      1








      1







      I've been forced to try to port to PySide2 from PySide because I'm developing code (on Windows 7) used inside Maya and Maya 2017 has moved to PySide2.



      PySide2 ships with Maya but only comes with the driver to talk to sqlite DBs. So I need to tell Qt about a new DIR that contains the MySql driver, like this:



      from PySide2 import QtWidgets
      QtWidgets.QApplication.addLibraryPath("C:tempplugins")


      This DIR contains a sub sqldrivers DIR which contains the driver. This works- when I call QtSql.QSqlDatabase.drivers() the new one is there so I've got the right driver and it's being picked up.



      However when I create a new DB and call open:



      db = QtSql.QSqlDatabase.addDatabase("QMYSQL3")
      db.setDatabaseName("my_db")
      db.setHostName("host")
      db.setUserName("user")
      db.setPassword("password")
      db.open()


      the open command returns False and the DB is not accessible. I call:



      db.lastError()


      and get:



      # Result: <PySide2.QtSql.QSqlError("", "Driver not loaded", "Driver not loaded")  at 0x0000000075410C08> # 


      NB: we successfully did the exact same thing with the previous PySide version.



      Other threads mention similar things and it turned out to be missing the actual libmysql.dll, which is the actual MySql DLL and can result in the same error if missing. However I definitely have this on my system and it's definitely in the PATH. It's actually the same file that is being successfully picked up through PySide. But the PySide2 driver just wont open a connection to the DB.



      I suspect maybe a dodgy driver but wondered if anyone has any experience with this or any advice?










      share|improve this question















      I've been forced to try to port to PySide2 from PySide because I'm developing code (on Windows 7) used inside Maya and Maya 2017 has moved to PySide2.



      PySide2 ships with Maya but only comes with the driver to talk to sqlite DBs. So I need to tell Qt about a new DIR that contains the MySql driver, like this:



      from PySide2 import QtWidgets
      QtWidgets.QApplication.addLibraryPath("C:tempplugins")


      This DIR contains a sub sqldrivers DIR which contains the driver. This works- when I call QtSql.QSqlDatabase.drivers() the new one is there so I've got the right driver and it's being picked up.



      However when I create a new DB and call open:



      db = QtSql.QSqlDatabase.addDatabase("QMYSQL3")
      db.setDatabaseName("my_db")
      db.setHostName("host")
      db.setUserName("user")
      db.setPassword("password")
      db.open()


      the open command returns False and the DB is not accessible. I call:



      db.lastError()


      and get:



      # Result: <PySide2.QtSql.QSqlError("", "Driver not loaded", "Driver not loaded")  at 0x0000000075410C08> # 


      NB: we successfully did the exact same thing with the previous PySide version.



      Other threads mention similar things and it turned out to be missing the actual libmysql.dll, which is the actual MySql DLL and can result in the same error if missing. However I definitely have this on my system and it's definitely in the PATH. It's actually the same file that is being successfully picked up through PySide. But the PySide2 driver just wont open a connection to the DB.



      I suspect maybe a dodgy driver but wondered if anyone has any experience with this or any advice?







      mysql qt pyside maya






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 16 '16 at 9:34

























      asked Nov 15 '16 at 17:37









      T Melson

      62




      62
























          1 Answer
          1






          active

          oldest

          votes


















          0














          I had the same error, but with postgres.
          I solved by placing the libpq.dll connector library next to my script.py.



          Then for mysql it would be libmysql.dll.



          In my case I had to build the libpq.dll from the source of postgres 9.6



          It seems that with PySide2 it is not necessary to use:
          QtWidgets.QApplication.addLibraryPath ("C: path_to plugins")



          using:
          print (PySide2.QtCore.QLibraryInfo.location (PySide2.QtCore.QLibraryInfo.PluginsPath)), I could see that the path was correct.



          a greeting






          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f40616256%2fbroken-mysql-driver-for-pyside2-on-windows%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            I had the same error, but with postgres.
            I solved by placing the libpq.dll connector library next to my script.py.



            Then for mysql it would be libmysql.dll.



            In my case I had to build the libpq.dll from the source of postgres 9.6



            It seems that with PySide2 it is not necessary to use:
            QtWidgets.QApplication.addLibraryPath ("C: path_to plugins")



            using:
            print (PySide2.QtCore.QLibraryInfo.location (PySide2.QtCore.QLibraryInfo.PluginsPath)), I could see that the path was correct.



            a greeting






            share|improve this answer


























              0














              I had the same error, but with postgres.
              I solved by placing the libpq.dll connector library next to my script.py.



              Then for mysql it would be libmysql.dll.



              In my case I had to build the libpq.dll from the source of postgres 9.6



              It seems that with PySide2 it is not necessary to use:
              QtWidgets.QApplication.addLibraryPath ("C: path_to plugins")



              using:
              print (PySide2.QtCore.QLibraryInfo.location (PySide2.QtCore.QLibraryInfo.PluginsPath)), I could see that the path was correct.



              a greeting






              share|improve this answer
























                0












                0








                0






                I had the same error, but with postgres.
                I solved by placing the libpq.dll connector library next to my script.py.



                Then for mysql it would be libmysql.dll.



                In my case I had to build the libpq.dll from the source of postgres 9.6



                It seems that with PySide2 it is not necessary to use:
                QtWidgets.QApplication.addLibraryPath ("C: path_to plugins")



                using:
                print (PySide2.QtCore.QLibraryInfo.location (PySide2.QtCore.QLibraryInfo.PluginsPath)), I could see that the path was correct.



                a greeting






                share|improve this answer












                I had the same error, but with postgres.
                I solved by placing the libpq.dll connector library next to my script.py.



                Then for mysql it would be libmysql.dll.



                In my case I had to build the libpq.dll from the source of postgres 9.6



                It seems that with PySide2 it is not necessary to use:
                QtWidgets.QApplication.addLibraryPath ("C: path_to plugins")



                using:
                print (PySide2.QtCore.QLibraryInfo.location (PySide2.QtCore.QLibraryInfo.PluginsPath)), I could see that the path was correct.



                a greeting







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 23 '18 at 1:17









                numaelis

                1




                1






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f40616256%2fbroken-mysql-driver-for-pyside2-on-windows%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Berounka

                    Sphinx de Gizeh

                    Different font size/position of beamer's navigation symbols template's content depending on regular/plain...