我通常使用python 2.7,但是这次我必须在python3中测试脚本。
它已经安装在我的计算机上,但是当我启动“ python3”然后转到“ import numpy”时,它显示“无法导入名称'multiarray'。
我什至安装了anaconda3进行测试,但没有任何反应
myName:~/anaconda3/bin$ python3
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 180, in <module>
from . import add_newdocs
File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 8, in <module>
from .type_check import *
File "/usr/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "/usr/lib/python2.7/dist-packages/numpy/core/__init__.py", line 14, in <module>
from . import multiarray
ImportError: cannot import name 'multiarray'
我看到它正在lib / python2.7中查找,但是我找不到在python3库中进行搜索的方法。
我已经尝试过python -m pip install numpy
,并试图在python3中创建一个virtualenv,但是我仍然遇到相同的错误。
我不知道该怎么办。有人可以帮我吗?
我想补充一点,因为我在客户端计算机上工作,所以无法使用'sudo'启动命令。
编辑:
我尝试了@gehbiszumeis的答案并得到了:
myName:~ $ cd anaconda3/bin/
myName:~/anaconda3/bin $ source activate /home/myName/anaconda3
(base) myName:~/anaconda3/bin $ conda list numpy
# packages in environment at /home/myName/anaconda3:
#
# Name Version Build Channel
numpy 1.14.3 py36hcd700cb_1
numpy-base 1.14.3 py36h9be14a7_1
numpydoc 0.8.0 py36_0
(base) myName:~/anaconda3/bin $ python3
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 180, in <module>
from . import add_newdocs
File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 8, in <module>
from .type_check import *
File "/usr/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "/usr/lib/python2.7/dist-packages/numpy/core/__init__.py", line 14, in <module>
from . import multiarray
ImportError: cannot import name 'multiarray'
当我键入conda list numpy时,我发现安装了numpy 36,但似乎无法正常工作。我错过了什么吗?
edit2:
使用@Pal Szabo方法后,我测试了命令python3 -m pip install --upgrade pip
并收到此错误:
(env) (base) myName:~/anaconda3/bin $ python3 -m pip install --upgrade pip
Traceback (most recent call last):
File "/home/myName/anaconda3/lib/python3.6/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/home/myName/anaconda3/lib/python3.6/runpy.py", line 142, in _get_module_details
return _get_module_details(pkg_main_name, error)
File "/home/myName/anaconda3/lib/python3.6/runpy.py", line 109, in _get_module_details
__import__(pkg_name)
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 4, in <module>
import locale
File "/home/myName/anaconda3/bin/env/lib/python3.6/locale.py", line 16, in <module>
import re
File "/home/myName/anaconda3/bin/env/lib/python3.6/re.py", line 142, in <module>
class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'`
这是python3,python2.7和python3之间的疯狂混合。我迷路了\ o /
答案 0 :(得分:1)
我遇到了同样的问题,花了我几个小时才弄清楚。
在我的情况下,PYTHONPATH
设置为/usr/lib/python2.6/dist-packages/
将其更改为/Users/xxx/miniconda3/lib/python3.7/site-packages/
可解决此问题。
祝好运。
答案 1 :(得分:0)
根据我从您的代码清单中看到的内容,似乎anaconda环境未激活(通常由提示前括号中的环境名称表示)。因此,python3会尝试查找numpy,而只会找到先前用于python 2.7的那个,这会导致错误(请参见python2.7
错误消息)
尝试
source activate <your-anaconda-environment>
然后您的提示应如下所示
(<your-anaconda-environment>) myName:~/anaconda3/bin$
应该在标准anaconda环境中包含小块动物。然后尝试使用以下方法检查您的环境中是否安装了numpy:
conda list numpy
如果未列出numpy,请尝试使用之前编写的pip进行安装。
答案 2 :(得分:0)
如果要使用python3,请使用pip3代替pip:
pip3 install numpy
您也可以在终端中尝试这些操作
rm -Rf env
virtualenv -p python3 env
source env/bin/activate
python3 -m pip install --upgrade pip
pip3 install numpy
还要确保脚本的第一行是
#!/usr/bin/python3
在此之前,不要写任何东西,甚至不发表评论。
答案 3 :(得分:0)
我解决了在VS Code上更改Python版本的问题。我使用的是Python 3.7.4,现在使用的是3.7.8。
当我安装Numpy时,它存储在Python3.6的文件夹中。所以我认为您可以尝试更改路径或仅更改Python的版本