
Hi, I was attempting to install my chimerax bundle on a different computer and encountered the error: No module named 'PyQt5' So I added this line to the bundle_info.xml under the Dependencies tag: <Dependency name="PyQt5"/> But I still get the same error?

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. 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. Best, Tony ________________________________ From: ChimeraX-users <chimerax-users-bounces@cgl.ucsf.edu> on behalf of William Hofsøy via ChimeraX-users <chimerax-users@cgl.ucsf.edu> Sent: Friday, April 8, 2022 7:53 AM To: chimerax-users@cgl.ucsf.edu <chimerax-users@cgl.ucsf.edu> Subject: [chimerax-users] Dependency trouble [EXTERNAL SENDER - PROCEED CAUTIOUSLY] Hi, I was attempting to install my chimerax bundle on a different computer and encountered the error: No module named 'PyQt5' So I added this line to the bundle_info.xml under the Dependencies tag: <Dependency name="PyQt5"/> But I still get the same error?

Hi again, I am indeed running a daily build on that computer. I tried your suggestion and it works partially but there are some issues. For instance I am getting: cannot import name 'QRegExp' from 'Qt.QtCore' 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. I am also curious as to why adding PyQt5 to the dependencies doesn't work. fre. 8. apr. 2022 kl. 17:26 skrev Anthony James Schaefer < tony.schaefer@uga.edu>:
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.
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.
Best,
Tony ------------------------------ *From:* ChimeraX-users <chimerax-users-bounces@cgl.ucsf.edu> on behalf of William Hofsøy via ChimeraX-users <chimerax-users@cgl.ucsf.edu> *Sent:* Friday, April 8, 2022 7:53 AM *To:* chimerax-users@cgl.ucsf.edu <chimerax-users@cgl.ucsf.edu> *Subject:* [chimerax-users] Dependency trouble
[EXTERNAL SENDER - PROCEED CAUTIOUSLY]
Hi, I was attempting to install my chimerax bundle on a different computer and encountered the error: No module named 'PyQt5'
So I added this line to the bundle_info.xml under the Dependencies tag: <Dependency name="PyQt5"/>
But I still get the same error?

Hello, 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. 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. Best, Tony ________________________________ From: William Hofsøy <2wswer@gmail.com> Sent: Friday, April 8, 2022 12:17 PM To: Anthony James Schaefer <tony.schaefer@uga.edu> Cc: chimerax-users@cgl.ucsf.edu <chimerax-users@cgl.ucsf.edu> Subject: Re: [chimerax-users] Dependency trouble [EXTERNAL SENDER - PROCEED CAUTIOUSLY] Hi again, I am indeed running a daily build on that computer. I tried your suggestion and it works partially but there are some issues. For instance I am getting: cannot import name 'QRegExp' from 'Qt.QtCore' 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. I am also curious as to why adding PyQt5 to the dependencies doesn't work. fre. 8. apr. 2022 kl. 17:26 skrev Anthony James Schaefer <tony.schaefer@uga.edu<mailto:tony.schaefer@uga.edu>>: 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. 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. Best, Tony ________________________________ From: ChimeraX-users <chimerax-users-bounces@cgl.ucsf.edu<mailto:chimerax-users-bounces@cgl.ucsf.edu>> on behalf of William Hofsøy via ChimeraX-users <chimerax-users@cgl.ucsf.edu<mailto:chimerax-users@cgl.ucsf.edu>> Sent: Friday, April 8, 2022 7:53 AM To: chimerax-users@cgl.ucsf.edu<mailto:chimerax-users@cgl.ucsf.edu> <chimerax-users@cgl.ucsf.edu<mailto:chimerax-users@cgl.ucsf.edu>> Subject: [chimerax-users] Dependency trouble [EXTERNAL SENDER - PROCEED CAUTIOUSLY] Hi, I was attempting to install my chimerax bundle on a different computer and encountered the error: No module named 'PyQt5' So I added this line to the bundle_info.xml under the Dependencies tag: <Dependency name="PyQt5"/> But I still get the same error?

Hi William, If you have ChimeraX’s source code (www.github.com/RBVI/ChimeraX <http://www.github.com/RBVI/ChimeraX>) you can copy the Qt folder at prereqs/qtshim/Qt into your virtual environment’s site-packages directory. This should allow for at least some partial support from the language server PyCharm runs. — Zach
On Apr 8, 2022, at 09:36, Anthony James Schaefer via ChimeraX-users <chimerax-users@cgl.ucsf.edu> wrote:
Hello,
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.
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.
Best,
Tony From: William Hofsøy <2wswer@gmail.com <mailto:2wswer@gmail.com>> Sent: Friday, April 8, 2022 12:17 PM To: Anthony James Schaefer <tony.schaefer@uga.edu <mailto:tony.schaefer@uga.edu>> Cc: chimerax-users@cgl.ucsf.edu <mailto:chimerax-users@cgl.ucsf.edu> <chimerax-users@cgl.ucsf.edu <mailto:chimerax-users@cgl.ucsf.edu>> Subject: Re: [chimerax-users] Dependency trouble
[EXTERNAL SENDER - PROCEED CAUTIOUSLY]
Hi again, I am indeed running a daily build on that computer. I tried your suggestion and it works partially but there are some issues. For instance I am getting: cannot import name 'QRegExp' from 'Qt.QtCore'
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. I am also curious as to why adding PyQt5 to the dependencies doesn't work.
fre. 8. apr. 2022 kl. 17:26 skrev Anthony James Schaefer <tony.schaefer@uga.edu <mailto:tony.schaefer@uga.edu>>: 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.
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.
Best,
Tony From: ChimeraX-users <chimerax-users-bounces@cgl.ucsf.edu <mailto:chimerax-users-bounces@cgl.ucsf.edu>> on behalf of William Hofsøy via ChimeraX-users <chimerax-users@cgl.ucsf.edu <mailto:chimerax-users@cgl.ucsf.edu>> Sent: Friday, April 8, 2022 7:53 AM To: chimerax-users@cgl.ucsf.edu <mailto:chimerax-users@cgl.ucsf.edu> <chimerax-users@cgl.ucsf.edu <mailto:chimerax-users@cgl.ucsf.edu>> Subject: [chimerax-users] Dependency trouble
[EXTERNAL SENDER - PROCEED CAUTIOUSLY]
Hi, I was attempting to install my chimerax bundle on a different computer and encountered the error: No module named 'PyQt5'
So I added this line to the bundle_info.xml under the Dependencies tag: <Dependency name="PyQt5"/>
But I still get the same error?
_______________________________________________ ChimeraX-users mailing list ChimeraX-users@cgl.ucsf.edu Manage subscription: https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users

Hi William, 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. 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. 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. 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. I don't know if pycharm (Python IDE) supports Qt 6 or how to make it work with PyQt6. 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. Tom
On Apr 8, 2022, at 9:36 AM, Anthony James Schaefer via ChimeraX-users <chimerax-users@cgl.ucsf.edu> wrote:
Hello,
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.
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.
Best,
Tony From: William Hofsøy <2wswer@gmail.com <mailto:2wswer@gmail.com>> Sent: Friday, April 8, 2022 12:17 PM To: Anthony James Schaefer <tony.schaefer@uga.edu <mailto:tony.schaefer@uga.edu>> Cc: chimerax-users@cgl.ucsf.edu <mailto:chimerax-users@cgl.ucsf.edu> <chimerax-users@cgl.ucsf.edu <mailto:chimerax-users@cgl.ucsf.edu>> Subject: Re: [chimerax-users] Dependency trouble
[EXTERNAL SENDER - PROCEED CAUTIOUSLY]
Hi again, I am indeed running a daily build on that computer. I tried your suggestion and it works partially but there are some issues. For instance I am getting: cannot import name 'QRegExp' from 'Qt.QtCore'
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. I am also curious as to why adding PyQt5 to the dependencies doesn't work.
fre. 8. apr. 2022 kl. 17:26 skrev Anthony James Schaefer <tony.schaefer@uga.edu <mailto:tony.schaefer@uga.edu>>: 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.
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.
Best,
Tony From: ChimeraX-users <chimerax-users-bounces@cgl.ucsf.edu <mailto:chimerax-users-bounces@cgl.ucsf.edu>> on behalf of William Hofsøy via ChimeraX-users <chimerax-users@cgl.ucsf.edu <mailto:chimerax-users@cgl.ucsf.edu>> Sent: Friday, April 8, 2022 7:53 AM To: chimerax-users@cgl.ucsf.edu <mailto:chimerax-users@cgl.ucsf.edu> <chimerax-users@cgl.ucsf.edu <mailto:chimerax-users@cgl.ucsf.edu>> Subject: [chimerax-users] Dependency trouble
[EXTERNAL SENDER - PROCEED CAUTIOUSLY]
Hi, I was attempting to install my chimerax bundle on a different computer and encountered the error: No module named 'PyQt5'
So I added this line to the bundle_info.xml under the Dependencies tag: <Dependency name="PyQt5"/>
But I still get the same error?
_______________________________________________ ChimeraX-users mailing list ChimeraX-users@cgl.ucsf.edu Manage subscription: https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users

Hey, Just want to add that QRegularExpression is in Qt5, so you should be able to use that and have it work with ChimeraX 1.3 and the daily builds. QRegExp was a different thing and apparently, they phased it out in Qt6. Hopefully, you don't need to make too many changes, as QRegExp and QRegularExpression are somewhat different. Best, Tony ________________________________ From: William Hofsøy <2wswer@gmail.com> Sent: Friday, April 8, 2022 12:17 PM To: Anthony James Schaefer <tony.schaefer@uga.edu> Cc: chimerax-users@cgl.ucsf.edu <chimerax-users@cgl.ucsf.edu> Subject: Re: [chimerax-users] Dependency trouble [EXTERNAL SENDER - PROCEED CAUTIOUSLY] Hi again, I am indeed running a daily build on that computer. I tried your suggestion and it works partially but there are some issues. For instance I am getting: cannot import name 'QRegExp' from 'Qt.QtCore' 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. I am also curious as to why adding PyQt5 to the dependencies doesn't work. fre. 8. apr. 2022 kl. 17:26 skrev Anthony James Schaefer <tony.schaefer@uga.edu<mailto:tony.schaefer@uga.edu>>: 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. 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. Best, Tony ________________________________ From: ChimeraX-users <chimerax-users-bounces@cgl.ucsf.edu<mailto:chimerax-users-bounces@cgl.ucsf.edu>> on behalf of William Hofsøy via ChimeraX-users <chimerax-users@cgl.ucsf.edu<mailto:chimerax-users@cgl.ucsf.edu>> Sent: Friday, April 8, 2022 7:53 AM To: chimerax-users@cgl.ucsf.edu<mailto:chimerax-users@cgl.ucsf.edu> <chimerax-users@cgl.ucsf.edu<mailto:chimerax-users@cgl.ucsf.edu>> Subject: [chimerax-users] Dependency trouble [EXTERNAL SENDER - PROCEED CAUTIOUSLY] Hi, I was attempting to install my chimerax bundle on a different computer and encountered the error: No module named 'PyQt5' So I added this line to the bundle_info.xml under the Dependencies tag: <Dependency name="PyQt5"/> But I still get the same error?
participants (4)
-
Anthony James Schaefer
-
Tom Goddard
-
William Hofsøy
-
Zach Pearson