'How to fix the NumPy .dtype 'NoneType' error

I am running the following Python code in PyCharm debug mode.

import numpy as np, pandas as pd, numpy.polynomial.chebyshev as chebyshev
from pathlib import Path

home = str(Path.home())

directory = '/Downloads'
d = pd.read_csv(home+directory+'/data.csv')

np.random.seed(0)
nData = 4
data = np.random.randn(nData,2)
z = data[:,0]
y = data[:,1]

coef = chebyshev.chebfit(z,y,3)

I encounter the following error message :

TypeError: 'NoneType' object is not callable

However if I comment out the line 'd = ...', everything works fine. What is even more bizarre is that both versions run well in the run mode. What is happening here?

Stack trace for the error:

/Library/Frameworks/Python.framework/Versions/3.10/bin/python3 /Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py --cmd-line --multiproc --qt-support=auto --client 127.0.0.1 --port 65032 --file /Users/PycharmProjects/pythonProject/trial.py
warning: PYDEVD_USE_CYTHON environment variable is set to 'NO'. Frame evaluator will be also disabled because it requires Cython extensions to be enabled in order to operate correctly.
/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py:1844: DeprecationWarning: currentThread() is deprecated, use current_thread() instead
  dummy_thread = threading.currentThread()
Connected to pydev debugger (build 212.5457.59)
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/numpy/core/getlimits.py", line 384, in __new__
    dtype = numeric.dtype(dtype)
TypeError: 'NoneType' object is not callable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py", line 1483, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "/Users/PycharmProjects/pythonProject/trial.py", line 16, in <module>
    coef0 = chebyshev.chebfit(z0,y0,4)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/numpy/polynomial/chebyshev.py", line 1670, in chebfit
    return pu._fit(chebvander, x, y, deg, rcond, full, w)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/numpy/polynomial/polyutils.py", line 650, in _fit
    rcond = len(x)*np.finfo(x.dtype).eps
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/numpy/core/getlimits.py", line 387, in __new__
    dtype = numeric.dtype(type(dtype))
TypeError: 'NoneType' object is not callable

Process finished with exit code 1


Solution 1:[1]

You'd need to downgrade to Python 3.9, or wait until this CPython/cython bug is fixed.

This is actually a real bug (as of 2022-04-14), and is showing up...:

Solution 2:[2]

See also 1.

Apparently there is a PyCharm numpy.core module empty template that replaces the true numpy.core module and it interferes with the true module.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 P Moran