Opened 4 years ago
Closed 3 years ago
#5157 closed defect (limitation)
PyPi dependency not installed by "devel install"
Reported by: | Owned by: | Greg Couch | |
---|---|---|---|
Priority: | normal | Milestone: | 1.6 |
Component: | Tool Shed | Version: | |
Keywords: | Cc: | chimera-programmers | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Windows-10-10.0.18362 ChimeraX Version: 1.2.5 (2021-05-24 04:13:57 UTC) Description I’m currently developing a bundle with a dependency on pandas. Even though I included this dependency in my bundle_info.xml file, I get “ModuleNotFoundError: No module named 'pandas'”. Log: UCSF ChimeraX version: 1.2.5 (2021-05-24) © 2016-2021 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > devel install > C:\Users\ilsel\Documents\MCLS\Bioinformatics_profile\crosslink_mapper running build running build_py creating build creating build\lib creating build\lib\chimerax creating build\lib\chimerax\crosslink_mapper copying src\tool.py -> build\lib\chimerax\crosslink_mapper copying src\\__init__.py -> build\lib\chimerax\crosslink_mapper running bdist_wheel installing to build\bdist.win-amd64\wheel running install running install_lib creating build\bdist.win-amd64 creating build\bdist.win-amd64\wheel creating build\bdist.win-amd64\wheel\chimerax creating build\bdist.win-amd64\wheel\chimerax\crosslink_mapper copying build\lib\chimerax\crosslink_mapper\tool.py -> build\bdist.win- amd64\wheel\\.\chimerax\crosslink_mapper copying build\lib\chimerax\crosslink_mapper\\__init__.py -> build\bdist.win- amd64\wheel\\.\chimerax\crosslink_mapper running install_egg_info running egg_info creating ChimeraX_CrosslinkMapper.egg-info writing ChimeraX_CrosslinkMapper.egg-info\PKG-INFO writing dependency_links to ChimeraX_CrosslinkMapper.egg- info\dependency_links.txt writing requirements to ChimeraX_CrosslinkMapper.egg-info\requires.txt writing top-level names to ChimeraX_CrosslinkMapper.egg-info\top_level.txt writing manifest file 'ChimeraX_CrosslinkMapper.egg-info\SOURCES.txt' reading manifest file 'ChimeraX_CrosslinkMapper.egg-info\SOURCES.txt' writing manifest file 'ChimeraX_CrosslinkMapper.egg-info\SOURCES.txt' Copying ChimeraX_CrosslinkMapper.egg-info to build\bdist.win- amd64\wheel\\.\ChimeraX_CrosslinkMapper-0.1-py3.8.egg-info running install_scripts creating build\bdist.win-amd64\wheel\ChimeraX_CrosslinkMapper-0.1.dist- info\WHEEL creating 'dist\ChimeraX_CrosslinkMapper-0.1-py3-none-any.whl' and adding 'build\bdist.win-amd64\wheel' to it adding 'chimerax/crosslink_mapper/__init__.py' adding 'chimerax/crosslink_mapper/tool.py' adding 'ChimeraX_CrosslinkMapper-0.1.dist-info/METADATA' adding 'ChimeraX_CrosslinkMapper-0.1.dist-info/WHEEL' adding 'ChimeraX_CrosslinkMapper-0.1.dist-info/top_level.txt' adding 'ChimeraX_CrosslinkMapper-0.1.dist-info/RECORD' removing build\bdist.win-amd64\wheel Distribution is in C:\Users\ilsel\Documents\MCLS\Bioinformatics_profile\crosslink_mapper\dist\ChimeraX_CrosslinkMapper-0.1-py3-none- any.whl [toolshed install](help:user/commands/toolshed.html#install) C:\Users\ilsel\Documents\MCLS\Bioinformatics_profile\crosslink_mapper\dist\ChimeraX_CrosslinkMapper-0.1-py3-none- any.whl reinstall true [toolshed install C:\Users\ilsel\Documents\MCLS\Bioinformatics_profile\crosslink_mapper\dist\ChimeraX_CrosslinkMapper-0.1-py3-none- any.whl reinstall true](cxcmd:toolshed install C:\\\Users\\\ilsel\\\Documents\\\MCLS\\\Bioinformatics_profile\\\crosslink_mapper\\\dist\\\ChimeraX_CrosslinkMapper-0.1-py3-none- any.whl reinstall true) Successfully installed ChimeraX-CrosslinkMapper-0.1 Installed ChimeraX-CrosslinkMapper (0.1) > ui tool show "Crosslink Mapper" Traceback (most recent call last): File "C:\Users\ilsel\AppData\Local\UCSF\ChimeraX\1.2\site- packages\chimerax\crosslink_mapper\tool.py", line 189, in map_button_clicked import pandas as pd ModuleNotFoundError: No module named 'pandas' ModuleNotFoundError: No module named 'pandas' File "C:\Users\ilsel\AppData\Local\UCSF\ChimeraX\1.2\site- packages\chimerax\crosslink_mapper\tool.py", line 189, in map_button_clicked import pandas as pd See log for complete Python traceback. OpenGL version: 3.3.13476 Core Profile Forward-Compatible Context 22.19.180.513 OpenGL renderer: AMD Radeon(TM) R4 Graphics OpenGL vendor: ATI Technologies Inc. Manufacturer: HP Model: HP Laptop 15-bw0xx OS: Microsoft Windows 10 Home (Build 18363) Memory: 8,017,076,224 MaxProcessMemory: 137,438,953,344 CPU: 2 AMD A6-9220 RADEON R4, 5 COMPUTE CORES 2C+3G OSLanguage: nl-NL Locale: ('en_GB', 'cp1252') PyQt5 5.15.2, Qt 5.15.2 Installed Packages: alabaster: 0.7.12 appdirs: 1.4.4 Babel: 2.9.1 backcall: 0.2.0 bio: 0.5.0 biopython: 1.79 blockdiag: 2.0.1 certifi: 2020.12.5 cftime: 1.5.0 chardet: 3.0.4 ChimeraX-AddCharge: 1.0.1 ChimeraX-AddH: 2.1.6 ChimeraX-AlignmentAlgorithms: 2.0 ChimeraX-AlignmentHdrs: 3.2 ChimeraX-AlignmentMatrices: 2.0 ChimeraX-Alignments: 2.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.0 ChimeraX-Atomic: 1.13.2 ChimeraX-AtomicLibrary: 3.1.3 ChimeraX-AtomSearch: 2.0 ChimeraX-AtomSearchLibrary: 1.0 ChimeraX-AxesPlanes: 2.0 ChimeraX-BasicActions: 1.1 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 1.1 ChimeraX-BondRot: 2.0 ChimeraX-BugReporter: 1.0 ChimeraX-BuildStructure: 2.5.2 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.1 ChimeraX-ButtonPanel: 1.0 ChimeraX-CageBuilder: 1.0 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.1 ChimeraX-ChemGroup: 2.0 ChimeraX-Clashes: 2.1 ChimeraX-ColorActions: 1.0 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.2.1 ChimeraX-CommandLine: 1.1.4 ChimeraX-ConnectStructure: 2.0 ChimeraX-Contacts: 1.0 ChimeraX-Core: 1.2.5 ChimeraX-CoreFormats: 1.0 ChimeraX-coulombic: 1.1.1 ChimeraX-CrosslinkMapper: 0.1 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0 ChimeraX-DataFormats: 1.1 ChimeraX-Dicom: 1.0 ChimeraX-DistMonitor: 1.1.3 ChimeraX-DistUI: 1.0 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ExperimentalCommands: 1.0 ChimeraX-FileHistory: 1.0 ChimeraX-FunctionKey: 1.0 ChimeraX-Geometry: 1.1 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.0 ChimeraX-Hbonds: 2.1 ChimeraX-HelloWorld: 0.1 ChimeraX-Help: 1.1 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.0 ChimeraX-ImageFormats: 1.1 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.1 ChimeraX-Label: 1.0 ChimeraX-ListInfo: 1.1.1 ChimeraX-Log: 1.1.2 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.8.1 ChimeraX-Map: 1.0.2 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0 ChimeraX-MapFilter: 2.0 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.0 ChimeraX-Markers: 1.0 ChimeraX-Mask: 1.0 ChimeraX-MatchMaker: 1.2.1 ChimeraX-MDcrds: 2.2 ChimeraX-MedicalToolbar: 1.0.1 ChimeraX-Meeting: 1.0 ChimeraX-MLP: 1.1 ChimeraX-mmCIF: 2.3 ChimeraX-MMTF: 2.1 ChimeraX-Modeller: 1.0.1 ChimeraX-ModelPanel: 1.0.1 ChimeraX-ModelSeries: 1.0 ChimeraX-Mol2: 2.0 ChimeraX-Morph: 1.0 ChimeraX-MouseModes: 1.1 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nucleotides: 2.0.1 ChimeraX-OpenCommand: 1.5 ChimeraX-PDB: 2.4.1 ChimeraX-PDBBio: 1.0 ChimeraX-PDBLibrary: 1.0.1 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.0.1 ChimeraX-PubChem: 2.0.1 ChimeraX-ReadPbonds: 1.0 ChimeraX-Registration: 1.1 ChimeraX-RemoteControl: 1.0 ChimeraX-ResidueFit: 1.0 ChimeraX-RestServer: 1.1 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 2.0 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.4 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0 ChimeraX-SeqView: 2.3 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0 ChimeraX-Shortcuts: 1.0 ChimeraX-ShowAttr: 1.0 ChimeraX-ShowSequences: 1.0 ChimeraX-SideView: 1.0 ChimeraX-Smiles: 2.0.1 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.3.1 ChimeraX-STL: 1.0 ChimeraX-Storm: 1.0 ChimeraX-Struts: 1.0 ChimeraX-Surface: 1.0 ChimeraX-SwapAA: 2.0 ChimeraX-SwapRes: 2.1 ChimeraX-TapeMeasure: 1.0 ChimeraX-Test: 1.0 ChimeraX-TestBundle: 0.1 ChimeraX-TestBundle2: 0.1 ChimeraX-TestBundle3: 0.1 ChimeraX-TestBundle4: 0.1 ChimeraX-TestBundle5: 0.1 ChimeraX-Toolbar: 1.0.1 ChimeraX-ToolshedUtils: 1.2 ChimeraX-Tug: 1.0 ChimeraX-TutorialCommand: 0.1 ChimeraX-TutorialReadFormat: 0.1 ChimeraX-TutorialToolQt: 0.1 ChimeraX-UI: 1.7.6 ChimeraX-uniprot: 2.1 ChimeraX-UnitCell: 1.0 ChimeraX-ViewDockX: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0 ChimeraX-WebServices: 1.0 ChimeraX-Zone: 1.0 colorama: 0.4.3 comtypes: 1.1.7 cxservices: 1.0 cycler: 0.10.0 Cython: 0.29.21 decorator: 5.0.9 distlib: 0.3.1 docutils: 0.16 et-xmlfile: 1.1.0 filelock: 3.0.12 funcparserlib: 0.3.6 grako: 3.16.5 h5py: 2.10.0 html2text: 2020.1.16 idna: 2.10 ihm: 0.17 imagecodecs: 2020.5.30 imagesize: 1.2.0 ipykernel: 5.3.4 ipython: 7.18.1 ipython-genutils: 0.2.0 jedi: 0.17.2 Jinja2: 2.11.2 jupyter-client: 6.1.7 jupyter-core: 4.7.1 kiwisolver: 1.3.1 line-profiler: 2.1.2 lxml: 4.6.2 lz4: 3.1.0 MarkupSafe: 2.0.1 matplotlib: 3.3.2 msgpack: 1.0.0 netCDF4: 1.5.4 networkx: 2.5 numexpr: 2.7.3 numpy: 1.19.2 numpydoc: 1.1.0 openpyxl: 3.0.7 openvr: 1.14.1501 packaging: 20.9 ParmEd: 3.2.0 parso: 0.7.1 pickleshare: 0.7.5 Pillow: 7.2.0 pip: 21.2.4 pkginfo: 1.5.0.1 plac: 1.3.3 prompt-toolkit: 3.0.18 psutil: 5.7.2 pycollada: 0.7.1 pydicom: 2.0.0 Pygments: 2.7.1 PyOpenGL: 3.1.5 PyOpenGL-accelerate: 3.1.5 pyparsing: 2.4.7 PyQt5-commercial: 5.15.2 PyQt5-sip: 12.8.1 PyQtWebEngine-commercial: 5.15.2 python-dateutil: 2.8.1 pytz: 2021.1 pywin32: 228 pyzmq: 22.0.3 qtconsole: 4.7.7 QtPy: 1.9.0 QtRangeSlider: 0.1.5 RandomWords: 0.3.0 requests: 2.24.0 scipy: 1.5.2 seaborn: 0.11.2 Send2Trash: 1.5.0 setuptools: 50.3.2 sfftk-rw: 0.6.7.dev1 six: 1.15.0 snowballstemmer: 2.1.0 sortedcontainers: 2.2.2 Sphinx: 3.2.1 sphinxcontrib-applehelp: 1.0.2 sphinxcontrib-blockdiag: 2.0.0 sphinxcontrib-devhelp: 1.0.2 sphinxcontrib-htmlhelp: 2.0.0 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.3 sphinxcontrib-serializinghtml: 1.1.5 suds-jurko: 0.6 tables: 3.6.1 tifffile: 2020.9.3 tinyarray: 1.2.3 tornado: 6.1 traitlets: 5.0.5 urllib3: 1.25.11 wcwidth: 0.2.5 webcolors: 1.11.1 wheel: 0.36.0 wheel-filename: 1.3.0 WMI: 1.5.1 xlrd: 2.0.1 File attachment: bundle_info.xml
Attachments (1)
Change History (11)
by , 4 years ago
Attachment: | bundle_info.xml added |
---|
comment:1 by , 4 years ago
Cc: | added |
---|---|
Component: | Unassigned → Tool Shed |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Normal PyPi dependency not found |
Reported by Ilse Lagerwaard
comment:2 by , 4 years ago
Milestone: | → 1.3 |
---|
I confirm that the devel install command does not install the Pandas PyPi dependency (on Mac, latest ChimeraX daily build). This seems to be a bug in the "devel install" command.
I added a pandas dependency to the standard EMDB_SFF bundle to test, and the "toolshed install" command does install Pandas correctly.
toolshed uninstall EMDB-SFF toolshed install /Users/goddard/ucsf/chimerax/src/bundles/emdb_sff/dist/ChimeraX_EMDB_SFF-1.0-py3-none-any.whl > Successfully installed ChimeraX-EMDB-SFF-1.0 pandas-1.3.2 > Installed ChimeraX-EMDB-SFF (1.0)
Had to first uninstall first otherwise it refused to install. This is what happens when a user gets your bundle (the .whl file) from the ChimeraX toolshed. So it should install pandas when you put your bundle on the Toolshed, but of course you want to be able to test it first.
comment:3 by , 4 years ago
Summary: | Normal PyPi dependency not found → PyPi dependency not installed by "devel install" |
---|
comment:4 by , 4 years ago
Milestone: | 1.3 → 1.4 |
---|
This bug is a side-effect of using "pip install --force-reinstall --no-deps" to reinstall a bundle with the exact same version. "--no-deps" is needed to prevent other Python packages from upgrading to the latest version in pypi.
One workaround is to increase the version number of your bundle. That is needed anyway because you've added a dependency. If the version number is different, then "pip install --upgrade-strategy only-if-needed" is used, and the dependency will be installed.
Another workaround is to remove the bundle first, as mentioned previously. That way the normal install arguments are given to pip and the dependency will be installed. The disadvantage of doing the uninstall first is that if the install fails for any reason, then the package is gone, and could potentially leave ChimeraX unrunnable. Nevertheless, I will put this workaround into the daily build after the branch for 1.3 is made, so it will either show up in 1.4 or we'll have confirmed that it isn't safe all of the time.
In the interim, I'll work on adding a toolshed command that installs a package from pypi. Ticket #4762.
comment:5 by , 4 years ago
Hi Greg,
Thanks a lot for the help!
I have one more question related to this: is there a command to uninstall bundles installed by "devel install"?
Kind regards,
Ilse
follow-up: 5 comment:6 by , 4 years ago
I believe you can use "toolshed uninstall bundle-name" to uninstall the bundle. If you are unsure what your bundle name is vis a vis the Toolshed, use "toolshed list" to see currently installed bundles.
comment:7 by , 4 years ago
Great, thank you! I initially encountered an error with this command, but then I used 'forceRemove true' and it worked 😊
comment:9 by , 3 years ago
Milestone: | 1.4 → 1.5 |
---|
Fix won't make 1.4. The solution will be to remove package before installing.
The workaround is to update the package version number if there is a dependency change.
comment:10 by , 3 years ago
Milestone: | 1.5 → 1.6 |
---|---|
Resolution: | → limitation |
Status: | assigned → closed |
We're going to wait for improvements in Python's pip to handle this case.
Added by email2trac