ercius / openNCEM

A collection of packages and tools for electron microscopy data analysis supported by the National Center for Electron Microscopy facility of the Molecular Foundry
GNU General Public License v3.0
60 stars 28 forks source link

module 'ncempy' has no attribute 'io' #29

Closed w4m0330 closed 3 years ago

w4m0330 commented 3 years ago

While (first time) using py4dstem, I encountered many problems from its dependencies including (llvmlite, numpy, matplotlib, etc.) all the problems were solved by downgrade to python to 3.6.12 and then reinstall the dependencies.

However, I finally encountered a problem originated in ncempy (which I could not identify the origin of problem and not too much resources on the internet): module 'ncempy' has no attribute 'io'

I tried pip uninstall ncempy and installed again, but not helpful. Therefore I'm posting here, dont know if its the right place to solve my problem.

(py4dstem) C:\WINDOWS\system32>py4dstem Traceback (most recent call last): File "c:\programdata\miniconda3\envs\py4dstem\lib\runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "c:\programdata\miniconda3\envs\py4dstem\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\ProgramData\Miniconda3\envs\py4dstem\Scripts\py4DSTEM.exe__main.py", line 4, in File "c:\programdata\miniconda3\envs\py4dstem\lib\site-packages\py4DSTEM\init.py", line 1, in from . import process File "c:\programdata\miniconda3\envs\py4dstem\lib\site-packages\py4DSTEM\process\init.py", line 3, in from . import preprocess File "c:\programdata\miniconda3\envs\py4dstem\lib\site-packages\py4DSTEM\process\preprocess\init.py", line 3, in from .electroncount import * File "c:\programdata\miniconda3\envs\py4dstem\lib\site-packages\py4DSTEM\process\preprocess\electroncount.py", line 11, in from ...io.datastructure import PointListArray File "c:\programdata\miniconda3\envs\py4dstem\lib\site-packages\py4DSTEM\io\init.py", line 3, in from . import nonnative File "c:\programdata\miniconda3\envs\py4dstem\lib\site-packages\py4DSTEM\io\nonnative\init.py", line 1, in from .read_dm import * File "c:\programdata\miniconda3\envs\py4dstem\lib\site-packages\py4DSTEM\io\nonnative\read_dm.py", line 5, in from ncempy.io import dm File "c:\programdata\miniconda3\envs\py4dstem\lib\site-packages\ncempy\io\init__.py", line 6, in from .read import read File "c:\programdata\miniconda3\envs\py4dstem\lib\site-packages\ncempy\io\read.py", line 1, in import ncempy.io as nio AttributeError: module 'ncempy' has no attribute 'io'

ercius commented 3 years ago

@w4m0330 Thanks for reporting this. The generalized read() functionality in ncempy was just released and there might be a problem with the imports. Im looking at this now to try and get a fix asap.

ercius commented 3 years ago

This issue only affects python 3.6 which is why it was not caught earlier. I have a fix ready (57e874cdd032ce3a51039b201469b1b4233891c1) which works in python 3.6 and 3.7. I will upload a bug fix version to pypi as 1.8.1. Then you can update to that version by pip install -U ncempy and py4dstem should work.

Ill have to check with the developers of py4dstem about the installation issue you had with >=python3.7. pip recently made versioning more strict and we must have conflicting versions in our setup.py files.

w4m0330 commented 3 years ago

Hi Peter,

Thanks for the update! Awesome! I’ll try it soon and update you if it works out. The reason with installing python was due to llvmlite and its dependency Numba. I have to downgrade from 3.9 to 3.6/3.7 in order to install it...

Best, Mingjian

On Tue 12. Jan 2021 at 18:41, Peter Ercius notifications@github.com wrote:

This issue only affects python 3.6 which is why it was not caught earlier. I have a fix ready (57e874c https://github.com/ercius/openNCEM/commit/57e874cdd032ce3a51039b201469b1b4233891c1) which works in python 3.6 and 3.7. I will upload a bug fix version to pypi as 1.8.1. Then you can update to that version by pip install -U ncempy and py4dstem should work.

Ill have to check with the developers of py4dstem about the installation issue you had with >=python3.7. pip recently made versioning more strict and we must have conflicting versions in our setup.py files.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ercius/openNCEM/issues/29#issuecomment-758824058, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADJFXLY36QWXMB75DCJCUZ3SZSCTZANCNFSM4V7FFEKQ .

--

M. Wu

ercius commented 3 years ago

The fix is not live yet. I will take me a little more time to push 1.8.1 to pypi. Ill update here when its done.

I have also gotten everything to work with ncempy 1.8.0 in python 3.7. So, I would use that version for now. Ill test python3.8 and python3.9 installations soon.