
Hello, I'm interesting in using pyqtchart (https://pypi.org/project/PyQtChart/) as an alternative to matplotlib for some plots in my bundle (I like the default style better, it resizes better - small things like that). If I list pyqtchart as a dependency in my bundle_info.xml like ... <Dependencies> <Dependency name="pyqtchart"/> </Dependencies> ... a new version of PyQt5 gets installed in the directory where bundles get installed. The QChart module from pyqtchart gets installed in this new PyQt5 package. I can't use the QChart module because it's not in the PyQt5 that ChimeraX uses. Is there anything I can do with my bundle to get it to install a usable pyqtchart? Thanks, Tony

The easiest solution for you would be for ChimeraX to bundle in the compatible version of PyQtChart. But we can't without releasing ChimeraX under the GPL license. And we're not willing to do that at this time. So the next best thing is for you to give an explicit version in the dependency tag. Right now, ChimeraX is using PyQt5 5.12.3 with Qt 5.12.8. So the dependencies should be (untested!): ... <Dependencies> <Dependency name="pyqtchart" version="==5.12"/ <Dependency name="ChimeraX-Core" version="~=1.0rc1"/> </Dependencies> ... And after the ChimeraX 1.0 release, change that dependency to "~=1.0.0", and you should consider making your bundle generally available on the ChimeraX Toolshed. Later, when ChimeraX 1.1 comes out that uses a different version of PyQt, you will need to make a new release of your bundle with those dependencies. That is, your bundle will need to be tied to the exact version of ChimeraX. HTH, Greg On 5/13/2020 5:11 PM, Anthony James Schaefer wrote:
Hello,
I'm interesting in using pyqtchart (https://pypi.org/project/PyQtChart/) as an alternative to matplotlib for some plots in my bundle (I like the default style better, it resizes better - small things like that). If I list pyqtchart as a dependency in my bundle_info.xml like
... <Dependencies> <Dependency name="pyqtchart"/> </Dependencies> ...
a new version of PyQt5 gets installed in the directory where bundles get installed. The QChart module from pyqtchart gets installed in this new PyQt5 package. I can't use the QChart module because it's not in the PyQt5 that ChimeraX uses.
Is there anything I can do with my bundle to get it to install a usable pyqtchart?
Thanks,
Tony
_______________________________________________ ChimeraX-users mailing list ChimeraX-users@cgl.ucsf.edu Manage subscription: https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users

Greg, Thanks for the response. I've tried what you suggested, and unfortunately the same thing happens. It looks as though pip doesn't recognize ChimeraX's PyQt5 as satisfactory. I am starting to second pyqtchart. It looks as though QChart goes right in the PyQt5 directory. I've tried to cheese this with importlib to no avail (wouldn't use it even if it did). If the QChart module has to get installed inside ChimeraX's PyQt5, users would probably have to run ChimeraX with privileges when they install my bundle (at least on windows if they used the default install location). I don't want that, so I'll probably stick with matplotlib. My bundle will be on the toolshed after I get my own tools to work (preferably as intended) and we get our dependency up on PyPI. IMO, manually installing AaronTools is the most involved part of my bundle's installation. The toolshed won't make that easier until it's on PyPI. On top of that, I've got several tools that don't do what I want. Best, Tony ________________________________ From: Greg Couch <gregc@cgl.ucsf.edu> Sent: Wednesday, May 13, 2020 9:08 PM To: Anthony James Schaefer <tony.schaefer@uga.edu> Cc: chimerax-users@cgl.ucsf.edu <chimerax-users@cgl.ucsf.edu> Subject: Re: [chimerax-users] pyqtchart [EXTERNAL SENDER - PROCEED CAUTIOUSLY] The easiest solution for you would be for ChimeraX to bundle in the compatible version of PyQtChart. But we can't without releasing ChimeraX under the GPL license. And we're not willing to do that at this time. So the next best thing is for you to give an explicit version in the dependency tag. Right now, ChimeraX is using PyQt5 5.12.3 with Qt 5.12.8. So the dependencies should be (untested!): ... <Dependencies> <Dependency name="pyqtchart" version="==5.12"/ <Dependency name="ChimeraX-Core" version="~=1.0rc1"/> </Dependencies> ... And after the ChimeraX 1.0 release, change that dependency to "~=1.0.0", and you should consider making your bundle generally available on the ChimeraX Toolshed. Later, when ChimeraX 1.1 comes out that uses a different version of PyQt, you will need to make a new release of your bundle with those dependencies. That is, your bundle will need to be tied to the exact version of ChimeraX. HTH, Greg On 5/13/2020 5:11 PM, Anthony James Schaefer wrote: Hello, I'm interesting in using pyqtchart (https://pypi.org/project/PyQtChart/) as an alternative to matplotlib for some plots in my bundle (I like the default style better, it resizes better - small things like that). If I list pyqtchart as a dependency in my bundle_info.xml like ... <Dependencies> <Dependency name="pyqtchart"/> </Dependencies> ... a new version of PyQt5 gets installed in the directory where bundles get installed. The QChart module from pyqtchart gets installed in this new PyQt5 package. I can't use the QChart module because it's not in the PyQt5 that ChimeraX uses. Is there anything I can do with my bundle to get it to install a usable pyqtchart? Thanks, Tony _______________________________________________ ChimeraX-users mailing list ChimeraX-users@cgl.ucsf.edu<mailto:ChimeraX-users@cgl.ucsf.edu> Manage subscription: https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users

I was wondering about that. Chimera's PyQt5 package is actually named PyQt5_commercial. It should be possible to install PyQtChart outside of the system location, you just need to insure that all of its binary dependencies are in memory before it is loaded. But you would need to compile and package your own version. Way easier to stick with matplotlib. Another option is to use the PyQtWebEngine functionality and use a JavaScript plotting library. The ViewDock tool does that. -- Greg On 5/13/2020 8:12 PM, Anthony James Schaefer wrote:
Greg,
Thanks for the response. I've tried what you suggested, and unfortunately the same thing happens. It looks as though pip doesn't recognize ChimeraX's PyQt5 as satisfactory.
I am starting to second pyqtchart. It looks as though QChart goes right in the PyQt5 directory. I've tried to cheese this with importlib to no avail (wouldn't use it even if it did). If the QChart module has to get installed inside ChimeraX's PyQt5, users would probably have to run ChimeraX with privileges when they install my bundle (at least on windows if they used the default install location). I don't want that, so I'll probably stick with matplotlib.
My bundle will be on the toolshed after I get my own tools to work (preferably as intended) and we get our dependency up on PyPI. IMO, manually installing AaronTools is the most involved part of my bundle's installation. The toolshed won't make that easier until it's on PyPI. On top of that, I've got several tools that don't do what I want.
Best,
Tony ------------------------------------------------------------------------ *From:* Greg Couch <gregc@cgl.ucsf.edu> *Sent:* Wednesday, May 13, 2020 9:08 PM *To:* Anthony James Schaefer <tony.schaefer@uga.edu> *Cc:* chimerax-users@cgl.ucsf.edu <chimerax-users@cgl.ucsf.edu> *Subject:* Re: [chimerax-users] pyqtchart [EXTERNAL SENDER - PROCEED CAUTIOUSLY]
The easiest solution for you would be for ChimeraX to bundle in the compatible version of PyQtChart. But we can't without releasing ChimeraX under the GPL license. And we're not willing to do that at this time.
So the next best thing is for you to give an explicit version in the dependency tag. Right now, ChimeraX is using PyQt5 5.12.3 with Qt 5.12.8. So the dependencies should be (untested!):
... <Dependencies> <Dependency name="pyqtchart" version="==5.12"/
<Dependency name="ChimeraX-Core" version="~=1.0rc1"/>
</Dependencies> ...
And after the ChimeraX 1.0 release, change that dependency to "~=1.0.0", and you should consider making your bundle generally available on the ChimeraX Toolshed. Later, when ChimeraX 1.1 comes out that uses a different version of PyQt, you will need to make a new release of your bundle with those dependencies. That is, your bundle will need to be tied to the exact version of ChimeraX.
HTH,
Greg
On 5/13/2020 5:11 PM, Anthony James Schaefer wrote:
Hello,
I'm interesting in using pyqtchart (https://pypi.org/project/PyQtChart/) as an alternative to matplotlib for some plots in my bundle (I like the default style better, it resizes better - small things like that). If I list pyqtchart as a dependency in my bundle_info.xml like
... <Dependencies> <Dependency name="pyqtchart"/> </Dependencies> ...
a new version of PyQt5 gets installed in the directory where bundles get installed. The QChart module from pyqtchart gets installed in this new PyQt5 package. I can't use the QChart module because it's not in the PyQt5 that ChimeraX uses.
Is there anything I can do with my bundle to get it to install a usable pyqtchart?
Thanks,
Tony
_______________________________________________ ChimeraX-users mailing list ChimeraX-users@cgl.ucsf.edu <mailto:ChimeraX-users@cgl.ucsf.edu> Manage subscription: https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users
participants (2)
-
Anthony James Schaefer
-
Greg Couch