Opened 3 years ago
Closed 3 years ago
#7760 closed defect (fixed)
ChimeraX build error caused by ChimeraX user site-packages setuptools module
Reported by: | Tom Goddard | Owned by: | Zach Pearson |
---|---|---|---|
Priority: | moderate | Milestone: | |
Component: | Build System | Version: | |
Keywords: | Cc: | Greg Couch | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
A ChimeraX build-from-scratch (with build directory deleted) failed because the alignment_headers bundle wheel file got version 0.0.0 instead of the correct 3.2.1
creating 'dist/ChimeraX_AlignmentHdrs-0.0.0-cp39-cp39-macosx_10_9_universal2.whl'
This was caused by the build process using the ChimeraX user site-packages directory which had I guess an older setuptools from installing Toolshed bundles.
$ pwd /Users/goddard/ucsf/chimerax/src/bundles/alignment_headers $ make clean $ make install ../../../ChimeraX.app/Contents/bin/python3.9 -I -m chimerax.core --nogui --safemode --exit --cmd "devel install . user false exit true " Executing: devel install . user false exit true /Users/goddard/Library/Application Support/ChimeraX/1.5/site-packages/setuptools/_distutils/dist.py:275: UserWarning: Unknown distribution option: 'distclass'
Seems like our build process should not be using the user site-packages directory.
Change History (8)
comment:1 by , 3 years ago
comment:2 by , 3 years ago
Can you note what Toolshed bundles you have installed? I can install them and come up with a way to disable the user site directory.
comment:3 by , 3 years ago
Unfortunately I already deleted the setuptools from the ChimeraX user site packages. Here is what I have in the user site-packages directory
/Users/goddard/Library/Application Support/ChimeraX/1.5/site-packages: total used in directory 912 available 615.4 GiB drwxr-xr-x 81 goddard staff 2592 Oct 7 15:40 . drwxr-xr-x 5 goddard staff 160 Oct 7 12:15 .. drwxr-xr-x 10 goddard staff 320 Aug 1 16:01 ChimeraX_ArtiaX-0.1.dist-info drwxr-xr-x 10 goddard staff 320 Oct 7 12:14 ChimeraX_Clipper-0.19.0.dev0.dist-info drwxr-xr-x 10 goddard staff 320 Oct 7 12:14 ChimeraX_ISOLDE-1.5.dev0.dist-info drwxr-xr-x 9 goddard staff 288 Sep 26 18:49 ChimeraX_PhenixUI-1.0.4.dist-info drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 Deprecated-1.2.13.dist-info drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 PyGSP-0.5.1.dist-info drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 PyWavelets-1.4.1.dist-info drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 PyYAML-6.0.dist-info drwxr-xr-x 9 goddard staff 288 Aug 8 15:17 Send2Trash-1.8.0.dist-info drwxr-xr-x 3 goddard staff 96 Aug 1 16:01 __pycache__ drwxr-xr-x 5 goddard staff 160 Oct 5 18:13 _distutils_hack -rwxr-xr-x 1 goddard staff 336185 Oct 5 18:13 _layout.cpython-39-darwin.so drwxr-xr-x 4 goddard staff 128 Oct 5 18:13 _yaml drwxr-xr-x 12 goddard staff 384 Oct 5 18:13 caffe2 drwxr-xr-x 8 goddard staff 256 Oct 7 12:14 chimerax drwxr-xr-x 6 goddard staff 192 Oct 5 18:13 deprecated -rw-r--r-- 1 goddard staff 152 Oct 5 18:13 distutils-precedence.pth drwxr-xr-x 3 goddard staff 96 Oct 5 18:13 doc drwxr-xr-x 11 goddard staff 352 Oct 5 18:13 future drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 future-0.18.2.dist-info drwxr-xr-x 11 goddard staff 352 Oct 5 18:13 graphtools drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 graphtools-1.5.2.dist-info drwxr-xr-x 17 goddard staff 544 Oct 5 18:13 imageio drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 imageio-2.22.1.dist-info drwxr-xr-x 31 goddard staff 992 Oct 5 18:13 joblib drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 joblib-1.2.0.dist-info drwxr-xr-x 7 goddard staff 224 Oct 5 18:13 libfuturize drwxr-xr-x 6 goddard staff 192 Oct 5 18:13 libpasteurize drwxr-xr-x 10 goddard staff 320 Oct 5 18:13 llvmlite drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 llvmlite-0.39.1.dist-info drwxr-xr-x 18 goddard staff 576 Oct 5 18:13 mrcfile drwxr-xr-x 10 goddard staff 320 Oct 5 18:13 mrcfile-1.4.3.dist-info drwxr-xr-x 48 goddard staff 1536 Oct 5 18:13 numba drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 numba-0.56.2.dist-info drwxr-xr-x 21 goddard staff 672 Aug 1 16:01 pandas drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 pandas-1.3.5.dist-info drwxr-xr-x 9 goddard staff 288 Aug 1 16:01 pandas-1.4.3.dist-info drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 past drwxr-xr-x 14 goddard staff 448 Oct 5 18:13 phate drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 phate-1.0.8.dist-info drwxr-xr-x 7 goddard staff 224 Oct 5 18:13 pkg_resources drwxr-xr-x 13 goddard staff 416 Oct 5 18:13 pygsp drwxr-xr-x 13 goddard staff 416 Oct 5 18:13 pynndescent drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 pynndescent-0.5.7.dist-info drwxr-xr-x 41 goddard staff 1312 Oct 5 18:13 pyqtgraph drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 pyqtgraph-0.13.1.dist-info drwxr-xr-x 23 goddard staff 736 Oct 5 18:13 pywt drwxr-xr-x 7 goddard staff 224 Oct 5 18:13 s_gd2 drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 s_gd2-1.8.dist-info drwxr-xr-x 10 goddard staff 320 Oct 5 18:13 scikit_image-0.19.3.dist-info drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 scikit_learn-1.1.2.dist-info drwxr-xr-x 19 goddard staff 608 Oct 5 18:13 scprep drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 scprep-1.2.1.dist-info drwxr-xr-x 17 goddard staff 544 Aug 8 15:17 send2trash drwxr-xr-x 28 goddard staff 896 Oct 5 18:13 skimage drwxr-xr-x 54 goddard staff 1728 Oct 5 18:13 sklearn drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 sklearn-0.0.dist-info drwxr-xr-x 10 goddard staff 320 Aug 1 16:01 starfile drwxr-xr-x 9 goddard staff 288 Aug 1 16:01 starfile-0.4.11.dist-info drwxr-xr-x 15 goddard staff 480 Aug 1 16:01 superqt drwxr-xr-x 8 goddard staff 256 Aug 1 16:01 superqt-0.3.3.dist-info drwxr-xr-x 7 goddard staff 224 Oct 5 18:13 tasklogger drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 tasklogger-1.2.0.dist-info drwxr-xr-x 11 goddard staff 352 Aug 1 16:01 tests drwxr-xr-x 7 goddard staff 224 Oct 5 18:13 threadpoolctl-3.1.0.dist-info -rw-r--r-- 1 goddard staff 41112 Oct 5 18:13 threadpoolctl.py drwxr-xr-x 82 goddard staff 2624 Oct 5 18:13 torch drwxr-xr-x 11 goddard staff 352 Oct 5 18:13 torch-1.12.1.dist-info drwxr-xr-x 20 goddard staff 640 Oct 5 18:13 torchgen drwxr-xr-x 29 goddard staff 928 Oct 5 18:13 tqdm drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 tqdm-4.64.1.dist-info drwxr-xr-x 7 goddard staff 224 Aug 1 16:01 typing_extensions-4.3.0.dist-info -rw-r--r-- 1 goddard staff 75384 Aug 1 16:01 typing_extensions.py drwxr-xr-x 14 goddard staff 448 Oct 5 18:13 umap drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 umap_learn-0.5.3.dist-info drwxr-xr-x 10 goddard staff 320 Oct 5 18:22 wiggle-0.2.2.dist-info drwxr-xr-x 9 goddard staff 288 Oct 5 18:13 wrapt drwxr-xr-x 8 goddard staff 256 Oct 5 18:13 wrapt-1.14.1.dist-info drwxr-xr-x 21 goddard staff 672 Oct 5 18:13 yaml
comment:4 by , 3 years ago
Here is what "toolshed list" says I have installed
UCSF ChimeraX version: 1.5.dev202210070217 (2022-10-07) © 2016-2022 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX toolshed list List of installed bundles: AddCharge (1.4): Add partial charges to atoms AddH (2.2): Add hydrogens AlignmentAlgorithms (2.0): Sequence alignment algorithms AlignmentHdrs (3.2.1): Alignment header support AlignmentMatrices (2.0): Sequence alignment similarity matrices Alignments (2.6): Sequence alignment support AlphaFold (1.0): Fetch structures from EBI AlphaFold database AltlocExplorer (1.0.3): Examine/change alternate atomic locations AmberInfo (1.0): Provide information about AmberTools installation Arrays (1.0): C++ library for parsing numpy arrays ArtiaX (0.1): ArtiaX: Cryo-ET Plugin for ChimeraX Atomic (1.41.4): Atomic-structure functionality AtomicLibrary (8.0.2): Atomic-structure C++ library AtomSearch (2.0.1): 3D atom search AxesPlanes (2.3): Depict axes or planes BasicActions (1.1.2): Basic actions for user-defined specifier names BILD (1.0): BILD file reader BlastProtein (2.1.2): Search PDB/NR/AlphaFold using BLAST BondRot (2.0.1): Bond rotation support BugReporter (1.0.1): Report bugs when an error occurs BuildStructure (2.7.1): Create/modify structures Bumps (1.0): Find protrusions in density maps ButtonPanel (1.0.1): Create custom user interface panels CageBuilder (1.0.1): Build polygonal meshes for oligomeric molecular assemblies CellPack (1.0): Fetch cellPACK models from web Centroids (1.3.1): Depict centroid of atoms ChangeChains (1.0.2): Change chain IDs CheckWaters (1.3): Check water placement in maps ChemGroup (2.0): Detect chemically functional groups Clashes (2.2.4): Find clashes/contacts in structures Clipper (0.19.0.dev0): Clipper: Efficient handling of volumetric data and symmetry ColorActions (1.0.3): Simple interface for coloring objects ColorGlobe (1.0): Show directional resolution colored sphere ColorKey (1.5.2): Add color key to graphics CommandLine (1.2.4): Command line support ConnectStructure (2.0.1): Add bonds to structures that lack them Contacts (1.0.1): Display chain contact maps Core (1.5.dev202210070217): ChimeraX Core Package CoreFormats (1.1): ChimeraX session support coulombic (1.3.2): Compute/show electrostatic potential Crosslinks (1.0): Analyze crosslinks Crystal (1.0): Crystal symmetries CrystalContacts (1.0.1): Show contacting asymmetric units in a crystal DataFormats (1.2.2): Data format management Dicom (1.1): Read medical imaging and segmentations in DICOM format DistMonitor (1.3): Interactive distance display DockPrep (1.0): Prepare structures for docking Dssp (2.0): Compute/assign secondary structure EMDB-SFF (1.0): EMDB SFF file reader ExperimentalCommands (1.0): Experimental commands FileHistory (1.0.1): File History Panel FunctionKey (1.0.1): Assign function keys to run commands Geometry (1.2): Vector and coordinate system routines gltf (1.0): Read/write glTF 3d scene files Graphics (1.1): OpenGL graphics rendering Hbonds (2.4): Identify hydrogen bonds in and among structures Help (1.2.1): Show ChimeraX Help HKCage (1.3): Create icosahedral mesh of hexagons and pentagons IHM (1.1): Integrative Hybrid Models file reader ImageFormats (1.2): Support for saving images IMOD (1.0): IMOD model file reader IO (1.0.1): Python convenience input/output functions ISOLDE (1.5.dev0): ISOLDE: Interactive Structure Optimisation by Local Direct Exploration ItemsInspection (1.0.1): Inspection of attributes of a set of items Label (1.1.7): Add text labels to graphics ListInfo (1.1.1): Report attributes for selected atomic data Log (1.1.5): Log support LookingGlass (1.1): LookingGlass holographic display Maestro (1.8.2): Maestro reader Map (1.1.1): Density maps MapData (2.0): Volume data file formats MapEraser (1.0.1): Map eraser MapFilter (2.0): Operations on maps MapFit (2.0): Fit molecules into maps MapSeries (2.1.1): Volume series Markers (1.0.1): Place markers on density maps Mask (1.0.1): Mask a volume to a surface MatchMaker (2.0.9): Superimpose structures MDcrds (2.6): Molecular dynamics support MedicalToolbar (1.0.2): Toolbar for medical image analysis Meeting (1.0.1): Shared interactive VR sessions. MLP (1.1): Molecular lipophilicity calculation mmCIF (2.8): mmCIF format read/write MMTF (2.2): MMTF format read/write Modeller (1.5.6): Interface to Modeller ModelPanel (1.3.6): ChimeraX Model Panel ModelSeries (1.0.1): Display sequences of models one by one Mol2 (2.0): Mol2 reader/writer Mole (1.0): Open JSON tunnel files from Mole Morph (1.0.1): Morph atomic structures MouseModes (1.1.1): Provide right button mouse mode tool Movie (1.0): Commands to record movies Neuron (1.0): Read SWC neuron trace files Nucleotides (2.0.3): Create nucleotide-specific displays OpenCommand (1.9.1): Manages 'open' command extensibility PDB (2.6.8): PDB format read/write PDBBio (1.0): PDB biological assembly fetch PDBLibrary (1.0.2): C++ PDB support PDBMatrices (1.0): Crystal and biological unit matrices PhenixUI (1.0.4): Run model bulding calculations using Phenix PickBlobs (1.0.1): Measure and color blobs Positions (1.0): Read and write model position matrices PresetMgr (1.1): Preset management PubChem (2.1): PubChem fetch ReadPbonds (1.0.1): Read in pseudobonds from a file Registration (1.1.1): Register ChimeraX RemoteControl (1.0): Control ChimeraX from other apps RenumberResidues (1.1): Renumber residues ResidueFit (1.0.1): Display fit of residues to density map RestServer (1.1): Starts REST server to execute commands from network requests RNALayout (1.0): Make RNA models RotamerLibMgr (2.0.1): Manage rotamer libraries RotamerLibsDunbrack (2.0): Dunbrack rotamer library RotamerLibsDynameomics (2.0): Dynameomics rotamer library RotamerLibsRichardson (2.0): Richardson rotamer libraries SaveCommand (1.5.1): Manages 'save' command extensibility SchemeMgr (1.0): HTTP scheme management SDF (2.0): SDF file reader Segger (1.0): Segment map Segment (1.0): Watershed segment calculation SelInspector (1.0): Inspect contents of selection SeqView (2.7.2): Sequence viewer Shape (1.0.1): Make models for geometric shapes Shell (1.0.1): Interactive Python shell Shortcuts (1.1.1): Button and keyboard shortcuts ShowSequences (1.0.1): Choose/show structure sequences SideView (1.0.1): Side view of scene Smiles (2.1): SMILES fetch SmoothLines (1.0): Smooth network of lines SpaceNavigator (1.0): Space Navigator device support StdCommands (1.10): Standard commands STL (1.0): STL file read/write Storm (1.0): STORM file reader StructMeasure (1.1): Structure measurement user interface Struts (1.0.1): struts for 3D printing Surface (1.0): Surface calculations SwapAA (2.0.1): Swap amino acid SwapRes (2.1.3): Swap residue side chains TapeMeasure (1.0): Tape measure mouse mode Test (1.0): simple regression test Toolbar (1.1.2): Toolbar ToolshedUtils (1.2.1): Toolshed bundle utilities Tug (1.0.1): Tug on atoms with molecular dynamics UI (1.24.2): ChimeraX user interface uniprot (2.2.1): UniProt database support UnitCell (1.0.1): Show crystal unit cell ViewDockX (1.1.3): Analyze ligand-receptor docking results VIPERdb (1.0): Read Virus Particle Explorer .vdb files Vive (1.1): Virtual reality headset support VolumeMenu (1.0.1): Volume menu VTK (1.0): Legacy VTK file reader and writer WavefrontOBJ (1.0): Wavefront OBJ file read/write WebCam (1.0.1): Combine camera video with graphics WebServices (1.1.0): Web service and HTTP request support wiggle (0.2.2): Interface for interpreting protein configurational space Zone (1.0.1): Mouse mode to show atom and map zones
comment:5 by , 3 years ago
If you use the ChimeraX binary, it automatically excludes the user site directory. Another workaround is to set HOME. Maybe there should be a top-level Makefile.macos, like we have for Ubuntu and CentOS, that sets HOME, like Makefile.{centos,ubuntu} do.
comment:6 by , 3 years ago
I guess to reproduce the error it would be good enough to install an old setuptools in the user site-packages, check that the build fails, then try whatever flags will prevent using user site-packages to verify it really works.
This is not a high priority.
I suspect the offending setuptools got into my user site-packages because the Wiggle ChimeraX package (https://github.com/charbj/wiggle) has bizarre hand-install instructions.
comment:7 by , 3 years ago
PYTHONNOUSERSITE=1 in Makefiles is the solution to this. I looked at the output of python -c "import sys; print(sys.path)"
by calling Python in 4 ways:
ChimeraX.app/bin/python.exe
PYTHONNOUSERSITE=1 ChimeraX.app/bin/python.exe
ChimeraX.app/bin/python.exe -I
PYTHONNOUSERSITE=1 ChimeraX.app/bin/python.exe -I
PYTHONNOUSERSITE and -I should do the same thing, but PYTHONNOUSERSITE makes it to (I think) subprocesses whereas -I (evidently) does not.
comment:8 by , 3 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Not sure if Greg or Zach should be the owner of this ticket. Reassign as needed.