该命令会python打开 Python 2.7.6 环境。如果我想解释 Python 3 脚本,我需要将命令重写为python3.
我刚刚安装了numpy包。为了测试安装是否成功,我运行了命令import numpy. 使用该python命令时效果很好。但是,python3没有找到包。
这怎么可能?这两个命令使用不同的路径变量吗?我怎样才能改变这种行为?
你说得对,他们使用不同的PYTHONPATHs。
您可以将 Python 2.x 和 Python 3.x 视为完全不同的编程环境。是的,他们将包裹存放在不同的位置。
要让 numpy 工作,你可以输入:
sudo apt-get install python3-numpy
Run Code Online (Sandbox Code Playgroud)
如果你想找出一个包的确切位置,你可以查看模块对象__path__属性:
>>> import numpy
>>> numpy.__path__
['/usr/local/lib/python3.5/site-packages/numpy']
Run Code Online (Sandbox Code Playgroud)
您还可以使用Pip安装python3-pip然后运行pip3 install whatever以安装 Python 3的软件包,对于在 Ubuntu 中不可用的软件包作为.python3-whatever
如果您对 distutils、setuptools、easy_install、pip 和其他之间的区别感到困惑,请使用 pip。那是最酷的。:)
不,他们使用相同的PATH. 但是,这个问题不在于PATH.
Python 2 和 Python 3 有很大的不同,必须为它们分别编写包。您不能将为一个编写的包与另一个一起使用。
在 Ubuntu 中,这些模块存储在不同的位置并单独打包 -python-numpy对于 Python 2,python3-numpy对于 Python 3。如果您想要 numpy 和 Python 3,请安装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']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24661 次 |
| 最近记录: |