Answers:
您是完全正确的,它们使用不同PYTHONPATH
的。
您可以将Python 2.x和Python 3.x视为完全不同的编程环境。是的,他们将包裹存储在不同的位置。
要使numpy正常工作,您可以输入:
sudo apt-get install python3-numpy
如果要找出软件包的确切存放位置,可以查看模块对象__path__
属性:
>>> import numpy
>>> numpy.__path__
['/usr/local/lib/python3.5/site-packages/numpy']
您还可以安装python3-pip
然后运行pip3 install whatever
以使用Pip安装Python 3 的软件包,以用于Ubuntu中没有的软件包python3-whatever
。
如果您对distutils,setuptools,easy_install,pip和其余的区别感到困惑,请使用pip。那很酷。:)
不,他们使用相同的PATH
。但是,这个问题并不存在PATH
。
Python 2和Python 3足够不同,因此必须分别为它们编写程序包。您不能将为一个编写的程序包与另一个程序包一起使用。
在Ubuntu中,这些模块存储在不同的位置,并分别打包- python-numpy
对于Python 2,python3-numpy
对于Python3。如果要在Python 3中使用numpy,请安装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']
确实,两者都从不同的位置导入模块:
/usr/lib/python2.7/dist-packages/numpy/
/usr/lib/python3/dist-packages/numpy/
为了能够同时导入numpy
两个解释器,请确保安装它们相应的软件包:
sudo apt-get install python-numpy
sudo apt-get install python3-numpy