<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi William,<div class=""><br class=""></div><div class=""> The ChimeraX 1.4 release we plan to make in the next month or two will use window toolkit Qt 6 and it has been in the ChimeraX daily builds for a few months. The previous ChimeraX 1.3 release used Qt 5. We had to update to the current Qt 6 because the QtCompany decided not to release any more bug fixes for Qt 5 except to commercial license holders (several thousand dollars), and a majority of ChimeraX crashes are bugs in the Qt window toolkit. So it was necessary for us to move to Qt 6 which is getting bug fixes.</div><div class=""><br class=""></div><div class=""> This means Python import statements like "from PyQt5 import QtWidgets" won't work. While you could use "from PyQt6 import QtWidgets" we instead prefer "from Qt import QtWidgets". In the future we may move from PyQt6 to PySide6 which is another Python wrapper for Qt because currently we pay thousands of dollars for a PyQt license and PySide6 is free. If you use "from Qt import QtWidgets" then when we switch to PySide6 a year or two from now your code will hopefully continue to work.</div><div class=""><br class=""></div><div class=""> I say "hopefully" because Qt 5, Qt 6, PyQt6 and PySide6 all have small differences which may break your code. So as Tony says Qt 6 has QRegularExpression while Qt 5 called it QRegExp. These changes are a pain. But we suggest you focus on Qt 6 for any ChimeraX plugins.</div><div class=""><br class=""></div><div class=""> Trying to put a dependency in your ChimeraX plugin on PyQt5 when the underlying ChimeraX uses PyQt6 is certain to fail. The same application cannot mix Qt 5 and Qt 6. ChimeraX starts the Qt 6 event loop, and so if any Qt 5 code is used it simply won't work. Our ChimeraX code all uses "from Qt import ...", so you can uninstall PyQt6 from ChimeraX and then install PyQt5 and ChimeraX will use Qt 5. But I don't recommend that since we will not maintain compatibility with old Qt 5 in new ChimeraX releases.</div><div class=""><br class=""></div><div class=""> I don't know if pycharm (Python IDE) supports Qt 6 or how to make it work with PyQt6.</div><div class=""><br class=""></div><div class=""> Sorry for these problems. We were shocked that Qt crippled the future of Qt 5 by not distributing any bug fixes unless you pay big money, when Qt 6 is still very new. I guess it means they are financially under pressure so this helps raise money for them from people who must stick with Qt 5, and also helps move most all their development effort to Qt 6. Qt 5 was released about 10 years ago (Dec 2012), so I expect Qt 6 will likely keep us going for the next 10 years.</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>Tom</div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Apr 8, 2022, at 9:36 AM, Anthony James Schaefer via ChimeraX-users <<a href="mailto:chimerax-users@cgl.ucsf.edu" class="">chimerax-users@cgl.ucsf.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta charset="UTF-8" class=""><div style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">Hello,</div><div style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=""><br class=""></div><div style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">Regular expressions are QRegularExpression in Qt.QtCore now. I think there's a ticket that listed some of the differences between Qt5 and Qt6, but I can't seem to find it.<span class="Apple-converted-space"> </span><br class=""></div><div style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=""><br class=""></div><div style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">I don't use pycharm, so I'm not sure if there is a solution for that. Also not sure about adding PyQt5 to the dependencies.</div><div style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=""><br class=""></div><div style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">Best,</div><div style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=""><br class=""></div><div style="font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">Tony<br class=""></div><div id="appendonsend" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""></div><hr tabindex="-1" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; display: inline-block; width: 848.671875px;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class=""></span><div id="divRplyFwdMsg" dir="ltr" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><font face="Calibri, sans-serif" style="font-size: 11pt;" class=""><b class="">From:</b><span class="Apple-converted-space"> </span>William Hofsøy <<a href="mailto:2wswer@gmail.com" class="">2wswer@gmail.com</a>><br class=""><b class="">Sent:</b><span class="Apple-converted-space"> </span>Friday, April 8, 2022 12:17 PM<br class=""><b class="">To:</b><span class="Apple-converted-space"> </span>Anthony James Schaefer <<a href="mailto:tony.schaefer@uga.edu" class="">tony.schaefer@uga.edu</a>><br class=""><b class="">Cc:</b><span class="Apple-converted-space"> </span><a href="mailto:chimerax-users@cgl.ucsf.edu" class="">chimerax-users@cgl.ucsf.edu</a><span class="Apple-converted-space"> </span><<a href="mailto:chimerax-users@cgl.ucsf.edu" class="">chimerax-users@cgl.ucsf.edu</a>><br class=""><b class="">Subject:</b><span class="Apple-converted-space"> </span>Re: [chimerax-users] Dependency trouble</font><div class=""> </div></div><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><font color="BA0C2F" class="">[EXTERNAL SENDER - PROCEED CAUTIOUSLY]</font><br class=""><br class=""><div class=""><div dir="ltr" class=""><div class="">Hi again,</div><div class="">I am indeed running a daily build on that computer.<br class=""></div><div class="">I tried your suggestion and it works partially but there are some issues.</div><div class="">For instance I am getting:<br class=""></div><div class="">cannot import name 'QRegExp' from 'Qt.QtCore'</div><div class=""><br class=""></div><div class="">And I am also not sure how to set this up with pycharm as there is no module actually named just Qt. Which means I am getting red squiggles all over and it breaks the autocomplete.</div><div class="">I am also curious as to why adding PyQt5 to the dependencies doesn't work.<br class=""></div></div><br class=""><div class="x_gmail_quote"><div dir="ltr" class="x_gmail_attr">fre. 8. apr. 2022 kl. 17:26 skrev Anthony James Schaefer <<a href="mailto:tony.schaefer@uga.edu" class="">tony.schaefer@uga.edu</a>>:<br class=""></div><blockquote class="x_gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="ltr" class=""><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">Is the other computer running a ChimeraX daily build? They are looking to switch to PyQt6 in one of the next versions. A ChimeraX developer would have more details on that.<span class="Apple-converted-space"> </span><br class=""></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=""><br class=""></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">Try changing your PyQt5 imports to just "Qt" (e.g. from Qt.QtWidgets import QPushButton). ChimeraX uses a shim to make things less dependent on the version of the Python Qt wrapper.<span class="Apple-converted-space"> </span><br class=""></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=""><br class=""></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">Best,</div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=""><br class=""></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">Tony<br class=""></div><div id="x_gmail-m_-9207635467380912528appendonsend" class=""></div><hr style="display: inline-block; width: 836.640625px;" class=""><div id="x_gmail-m_-9207635467380912528divRplyFwdMsg" dir="ltr" class=""><font face="Calibri, sans-serif" style="font-size: 11pt;" class=""><b class="">From:</b><span class="Apple-converted-space"> </span>ChimeraX-users <<a href="mailto:chimerax-users-bounces@cgl.ucsf.edu" target="_blank" class="">chimerax-users-bounces@cgl.ucsf.edu</a>> on behalf of William Hofsøy via ChimeraX-users <<a href="mailto:chimerax-users@cgl.ucsf.edu" target="_blank" class="">chimerax-users@cgl.ucsf.edu</a>><br class=""><b class="">Sent:</b><span class="Apple-converted-space"> </span>Friday, April 8, 2022 7:53 AM<br class=""><b class="">To:</b><span class="Apple-converted-space"> </span><a href="mailto:chimerax-users@cgl.ucsf.edu" target="_blank" class="">chimerax-users@cgl.ucsf.edu</a><span class="Apple-converted-space"> </span><<a href="mailto:chimerax-users@cgl.ucsf.edu" target="_blank" class="">chimerax-users@cgl.ucsf.edu</a>><br class=""><b class="">Subject:</b><span class="Apple-converted-space"> </span>[chimerax-users] Dependency trouble</font><div class=""> </div></div><div class=""><font color="BA0C2F" class="">[EXTERNAL SENDER - PROCEED CAUTIOUSLY]</font><br class=""><br class=""><div class=""><div dir="ltr" class=""><div class="">Hi,</div><div class="">I was attempting to install my chimerax bundle on a different computer and encountered the error:</div><div class="">No module named 'PyQt5'</div><div class=""><br class=""></div><div class="">So I added this line to the bundle_info.xml under the Dependencies tag:</div><div class=""><Dependency name="PyQt5"/></div><div class=""><br class=""></div><div class="">But I still get the same error?</div><div class=""><br class=""></div></div></div></div></div></blockquote></div></div></div><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">_______________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">ChimeraX-users mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class=""><a href="mailto:ChimeraX-users@cgl.ucsf.edu" class="">ChimeraX-users@cgl.ucsf.edu</a></span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Manage subscription:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class=""><a href="https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users" class="">https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users</a></span></div></blockquote></div><br class=""></div></body></html>