Opened 4 years ago

Closed 4 years ago

#6190 closed defect (nonchimerax)

SEQCROW: No module named 'pwd'

Reported by: chimerax-bug-report@… Owned by: Tony Schaefer
Priority: normal Milestone:
Component: Third Party Version:
Keywords: Cc: Greg Couch
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
(Describe the actions that caused this problem to occur here)

Log:
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site-
packages\chimerax\core\triggerset.py", line 130, in invoke  
return self._func(self._name, data)  
File "C:\Users\hassan\AppData\Local\UCSF\ChimeraX\1.2\site-
packages\SEQCROW\\__init__.py", line 36, in <lambda>  
lambda *args, ses=session: _SEQCROW_API.register_selector_menus(ses)  
File "C:\Users\hassan\AppData\Local\UCSF\ChimeraX\1.2\site-
packages\SEQCROW\\__init__.py", line 551, in register_selector_menus  
from AaronTools.substituent import Substituent  
File "C:\Users\hassan\AppData\Local\UCSF\ChimeraX\1.2\site-
packages\AaronTools\substituent.py", line 15, in <module>  
from AaronTools.geometry import Geometry  
File "C:\Users\hassan\AppData\Local\UCSF\ChimeraX\1.2\site-
packages\AaronTools\geometry.py", line 25, in <module>  
DEFAULT_CONFIG = Config(quiet=True)  
File "C:\Users\hassan\AppData\Local\UCSF\ChimeraX\1.2\site-
packages\AaronTools\config.py", line 189, in __init__  
fallback=self.get("HPC", "user", fallback=getuser()),  
File "C:\Program Files\ChimeraX 1.2.5\bin\lib\getpass.py", line 168, in
getuser  
import pwd  
ModuleNotFoundError: No module named 'pwd'  
  
Error processing trigger "ready":  
ModuleNotFoundError: No module named 'pwd'  
  
File "C:\Program Files\ChimeraX 1.2.5\bin\lib\getpass.py", line 168, in
getuser  
import pwd  
  
See log for complete Python traceback.  
  
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  




OpenGL version: 3.3.0 - Build 26.20.100.7870
OpenGL renderer: Intel(R) UHD Graphics
OpenGL vendor: Intel
Manufacturer: Dell Inc.
Model: Latitude 9510
OS: Microsoft Windows 10 Enterprise (Build 18363)
Memory: 16,826,859,520
MaxProcessMemory: 137,438,953,344
CPU: 12 Intel(R) Core(TM) i7-10810U CPU @ 1.10GHz
OSLanguage: en-US
Locale: ('en_US', '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
    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-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-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-Toolbar: 1.0.1
    ChimeraX-ToolshedUtils: 1.2
    ChimeraX-Tug: 1.0
    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
    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
    MolecularDynamicsViewer: 1.2
    msgpack: 1.0.0
    netCDF4: 1.5.4
    networkx: 2.5
    numexpr: 2.7.3
    numpy: 1.19.2
    numpydoc: 1.1.0
    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.0.1
    pkginfo: 1.5.0.1
    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
    RandomWords: 0.3.0
    requests: 2.24.0
    scipy: 1.5.2
    Send2Trash: 1.7.1
    SEQCROW: 1.0.2
    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

Change History (6)

comment:1 by pett, 4 years ago

Component: UnassignedThird Party
Owner: set to Tony Schaefer
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionSEQCROW: No module named 'pwd'

in reply to:  2 ; comment:2 by Tony Schaefer, 4 years ago

I don't really know why getuser() would be trying to use pwd. From the getpass description:

"This function checks the environment variables LOGNAME, USER, LNAME and USERNAME, in order, and returns the value of the first one which is set to a non-empty string. If none are set, the login name from the password database is returned on systems which support the pwd<https://docs.python.org/3.7/library/pwd.html#module-pwd> module, otherwise, an exception is raised."

pwd is only on Unix (and is in the standard python library), but Windows should have %USERNAME% set. Not sure what's going on here.

Tony
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: Thursday, February 17, 2022 1:40 PM
Cc: chimerax-bug-report@cgl.ucsf.edu <chimerax-bug-report@cgl.ucsf.edu>; Anthony James Schaefer <tony.schaefer@uga.edu>
Subject: Re: [ChimeraX] #6190: SEQCROW: No module named 'pwd' (was: ChimeraX bug report submission)

[EXTERNAL SENDER - PROCEED CAUTIOUSLY]


#6190: SEQCROW: No module named 'pwd'
--------------------------------------------+---------------------------
          Reporter:  chimerax-bug-report@…  |      Owner:  Tony Schaefer
              Type:  defect                 |     Status:  assigned
          Priority:  normal                 |  Milestone:
         Component:  Third Party            |    Version:
        Resolution:                         |   Keywords:
        Blocked By:                         |   Blocking:
Notify when closed:                         |   Platform:  all
           Project:  ChimeraX               |
--------------------------------------------+---------------------------
Changes (by pett):

 * status:  new => assigned
 * component:  Unassigned => Third Party
 * project:   => ChimeraX
 * platform:   => all
 * owner:  (none) => Tony Schaefer


--
Ticket URL: <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/6190#comment:1>
ChimeraX <https://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker

comment:3 by pett, 4 years ago

Cc: Greg Couch added

Though you would think that getuser() wouldn't fail on Windows, empirically we have found that it does fail for a small but significant subset of users. Therefore we implemented our own getuser() equivalent: chimerax.core.toolshed._get_user(). You might want to crib from that to implement a workaround for AaronTools.

--Eric

comment:4 by Greg Couch, 4 years ago

Maybe we should make that a public API.

in reply to:  5 ; comment:5 by Tony Schaefer, 4 years ago

A public getuser could be useful, but the error here is coming from AaronTools and not SEQCROW. AaronTools is supposed to be its own thing, with SEQCROW being and interface between it and ChimeraX. We'll probably implement our own getuser() for AaronTools, but we don't need the username just to import things.

Some AaronTools users want to be very certain that nothing will try to access the internet. AaronTools can grab structures from SMILES or an IUPAC name using the CACTUS online tool (or RDKit if it is installed). All we grab from the config during importing is a flag that allows us to import urllib. I should be able to eliminate whatever else it's trying to parse from the config.

It looks like this is the only place getuser is used in AaronTools.

Tony
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: Thursday, February 17, 2022 9:36 PM
Cc: chimerax-bug-report@cgl.ucsf.edu <chimerax-bug-report@cgl.ucsf.edu>; gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; Anthony James Schaefer <tony.schaefer@uga.edu>
Subject: Re: [ChimeraX] #6190: SEQCROW: No module named 'pwd'

[EXTERNAL SENDER - PROCEED CAUTIOUSLY]


#6190: SEQCROW: No module named 'pwd'
--------------------------------------------+---------------------------
          Reporter:  chimerax-bug-report@…  |      Owner:  Tony Schaefer
              Type:  defect                 |     Status:  assigned
          Priority:  normal                 |  Milestone:
         Component:  Third Party            |    Version:
        Resolution:                         |   Keywords:
        Blocked By:                         |   Blocking:
Notify when closed:                         |   Platform:  all
           Project:  ChimeraX               |
--------------------------------------------+---------------------------

Comment (by Greg Couch):

 Maybe we should make that a public API.

--
Ticket URL: <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/6190#comment:4>
ChimeraX <https://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker

comment:6 by Greg Couch, 4 years ago

Resolution: nonchimerax
Status: assignedclosed

Sounds good. We'll consider this as an AaronTools bug.

Note: See TracTickets for help on using tickets.