错误:AttributeError:模块“ numpy”没有属性“ sqrt”

时间:2020-06-10 01:45:16

标签: python python-3.x

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的新手。

1 个答案:

答案 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