El comando python
abre un entorno Python 2.7.6. Si quiero interpretar un script Python 3, necesito reescribir el comando a python3
.
Acabo de instalar el paquete numpy. Para probar la instalación exitosa, ejecuto el comando import numpy
. Funciona bien cuando se usa el comando python
. Sin embargo, python3
no encuentra el paquete.
¿Cómo es esto posible? ¿Estos dos comandos usan variables ruta diferentes? ¿Cómo puedo cambiar el comportamiento?
Tienes toda la razón, usan diferentes PYTHONPATH
NAME _ s.
Puede pensar en Python 2.xy Python 3.x como entornos de programación completamente diferentes. Y sí, almacenan sus paquetes en diferentes lugares.
Para comenzar a trabajar, puede escribir:
Sudo apt-get install python3-numpy
Si desea averiguar dónde se guarda exactamente un paquete, puede ver los atributos del módulo __path__
:
>>> import numpy
>>> numpy.__path__
['/usr/local/lib/python3.5/site-packages/numpy']
También puede instalar python3-pip
y luego ejecutar pip3 install whatever
para instalar paquetes para Python 3 con Pip , para paquetes que no están disponibles en Ubuntu como python3-whatever
.
En caso de que esté confundido acerca de la diferencia entre distutils, setuptools, easy_install, pip y el resto, use pip. Ese es el genial. :)
No, usan el mismo PATH
. Sin embargo, este problema no es con el PATH
.
Python 2 y Python 3 son lo suficientemente diferentes como para que los paquetes tengan que escribirse por separado para ambos. No puede usar un paquete escrito para uno con el otro.
En Ubuntu, estos módulos se almacenan en diferentes ubicaciones y se empaquetan por separado - python-numpy
para Python 2, python3-numpy
para Python 3. Si desea numpy con Python 3, instale _python3-numpy
_.
_$ python3 -c 'import sys; print (sys.path)'
['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/home/muru/.local/lib/python3.4/site-packages', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
$ python2 -c 'import sys; print (sys.path)'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
_
De hecho, ambos están importando módulos desde diferentes ubicaciones:
/usr/lib/python2.7/dist-packages/numpy/
/usr/lib/python3/dist-packages/numpy/
Para poder importar numpy
con ambos intérpretes, asegúrese de instalar sus paquetes correspondientes:
Sudo apt-get install python-numpy
Sudo apt-get install python3-numpy