Opened 4 years ago

Closed 3 years ago

#5157 closed defect (limitation)

PyPi dependency not installed by "devel install"

Reported by: i.m.lagerwaard@… 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

bundle_info.xml

Attachments (1)

bundle_info.xml (2.1 KB ) - added by i.m.lagerwaard@… 4 years ago.
Added by email2trac

Download all attachments as: .zip

Change History (11)

by i.m.lagerwaard@…, 4 years ago

Attachment: bundle_info.xml added

Added by email2trac

comment:1 by pett, 4 years ago

Cc: chimera-programmers added
Component: UnassignedTool Shed
Owner: set to Greg Couch
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionNormal PyPi dependency not found

Reported by Ilse Lagerwaard

comment:2 by Tom Goddard, 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 Tom Goddard, 4 years ago

Summary: Normal PyPi dependency not foundPyPi dependency not installed by "devel install"

comment:4 by Greg Couch, 4 years ago

Milestone: 1.31.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.

in reply to:  6 comment:5 by i.m.lagerwaard@…, 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

Last edited 4 years ago by Tom Goddard (previous) (diff)

comment:6 by pett, 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.

in reply to:  8 comment:7 by i.m.lagerwaard@…, 4 years ago

Great, thank you! I initially encountered an error with this command, but then I used 'forceRemove true' and it worked 😊

Last edited 4 years ago by Tom Goddard (previous) (diff)

comment:8 by pett, 4 years ago

Glad something worked! :-)

--Eric

comment:9 by Greg Couch, 3 years ago

Milestone: 1.41.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 Greg Couch, 3 years ago

Milestone: 1.51.6
Resolution: limitation
Status: assignedclosed

We're going to wait for improvements in Python's pip to handle this case.

Note: See TracTickets for help on using tickets.