无法使用python3

时间:2018-09-10 06:49:35

标签: python-3.x python-2.7 numpy install

我通常使用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 /

4 个答案:

答案 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的版本