import numpy as np
np. sqrt(3)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-14-029a7ac454da> in <module>()
1 import numpy as np
----> 2 np. sqrt(3)
AttributeError: module 'numpy' has no attribute 'sqrt'
我知道这很基本,但请指导。我是python 3的新手。
答案 0 :(得分:1)
请确保您的工作空间中没有名为numpy.py
的文件。
(test-py38) gino:test$ touch numpy.py
(test-py38) gino:test$ ll
total 0
-rw-r--r-- 1 gino gino 0 6月 10 12:30 numpy.py
(test-py38) gino:test$ ipython
Python 3.8.3 (default, May 14 2020, 20:11:43)
...
In [1]: import numpy as np
In [2]: np. sqrt(3)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-2-54486447ed79> in <module>
----> 1 np. sqrt(3)
AttributeError: module 'numpy' has no attribute 'sqrt'
您绝不能拥有以Python软件包命名的文件,因为import
将导入您的文件而不是 actual 软件包。您需要将它们重命名为其他名称。
有关Python如何导入内容的信息,请参见Module Search Path文档:
导入名为
spam
的模块时,解释器首先搜索具有该名称的内置模块。如果找不到,它将在变量sys.path给出的目录列表中搜索名为spam.py
的文件。
- 包含输入脚本的目录(如果未指定文件,则为当前目录)。
- PYTHONPATH(目录名称列表,其语法与shell变量PATH相同)。
- 与安装有关的默认设置。
您还可以通过打印__path__
来检查它是否导入了正确的软件包:
(test-py38) gino:test$ ipython
Python 3.8.3 (default, May 14 2020, 20:11:43)
...
In [1]: import numpy as np
In [2]: np.__path__
Out[2]: ['/path/to/.venvs/test-py38/lib/python3.8/site-packages/numpy']
In [4]: np. sqrt(3) # The spaces don't matter
Out[4]: 1.7320508075688772