Normalmente trabajo con python 2.7 pero esta vez tengo que probar un script en python3.

Ya está instalado en mi computadora, sin embargo, cuando inicio "python3", luego voy a "importar numpy", me muestra "no se puede importar el nombre 'multiarray'.

Incluso instalé anaconda3 para probar, pero no pasa nada

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'

Vi que está buscando en lib / python2.7, pero no puedo encontrar qué hacer para que busque en la biblioteca python3.

Ya probé python -m pip install numpy e intenté crear un virtualenv en python3 pero sigo teniendo el mismo error.

No puedo entender qué hacer. Alguien me puede ayudar ?

Me gustaría agregar, no puedo iniciar el comando con 'sudo' ya que estoy trabajando en una máquina cliente.

editar:

Intenté @gehbiszumeis respuesta y obtuve esto:

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'

Veo que hay 36 numpy instalado cuando escribo conda list numpy, pero parece que no funciona. ¿Me perdí algo?

edit2: Después del método @Pal Szabo, probé el comando python3 -m pip install --upgrade pip y obtuve este error:

(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'`

Es una mezcla loca entre python3, python2.7 y nuevamente python3. Estoy perdido

2
Sahasrahla 10 sep. 2018 a las 09:49

4 respuestas

La mejor respuesta

Según lo que puedo ver en su lista de códigos, parece que el entorno anaconda no está activado (esto generalmente se indica mediante el nombre del entorno entre paréntesis () antes de la solicitud). Debido a eso, python3 intenta buscar numpy y solo encuentra el que usó para python 2.7 anteriormente, lo que causa el error (vea los mensajes de error python2.7)

Tratar

source activate <your-anaconda-environment>

Entonces su aviso debería verse así

(<your-anaconda-environment>) myName:~/anaconda3/bin$ 

Numpy debe estar contenido en el entorno estándar de anaconda. Intente verificar si numpy está instalado en su entorno con

conda list numpy

Si no hay un numpy en la lista, intente instalarlo con pip como escribió anteriormente.

1
gehbiszumeis 10 sep. 2018 a las 07:06

Si desea usar python3, use pip3 en lugar de pip:

 pip3 install numpy

Puedes probar estos también en la terminal:

rm -Rf env
virtualenv -p python3 env
source env/bin/activate
python3 -m pip install --upgrade pip
pip3 install numpy

También asegúrese de que la primera línea de su script sea

#!/usr/bin/python3

No escriba nada, ni siquiera comentarios, antes de esto.

0
zabop 10 sep. 2018 a las 07:23

Resolví este problema cambiando la versión de Python en VS Code. Estaba trabajando con Python 3.7.4, ahora con el 3.7.8.

Cuando instalé Numpy, estaba almacenado en la carpeta de Python3.6. Así que creo que podrías intentar cambiar el camino o simplemente cambiar la versión de Python

0
VicenteC 25 sep. 2019 a las 20:01

Tuve el mismo problema, me tomó varias horas resolverlo.

En mi caso, PYTHONPATH se configuró en /usr/lib/python2.6/dist-packages/ cambiarlo a /Users/xxx/miniconda3/lib/python3.7/site-packages/ resolvió el problema. Buena suerte.

2
sahasrara62 4 ene. 2019 a las 08:35