我在Ubuntu 16.04(64位版本)中安装了python 2.7.12。我也通过 pip 安装了 numpy、scipy、sympy 等模块。我的问题是,当我通过终端打开python命令行并尝试导入这些模块时,出现以下错误:
$ python
Python 2.7.12 (default, Jul 10 2016, 20:42:07)
[GCC 5.3.1 20160413] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named numpy
>>>
经过一些研究,我从这个线程中发现,如果我使用 /usr/bin/python
打开 python 命令行并尝试导入这些模块,我不会收到任何错误。
$ /usr/bin/python
Python 2.7.11+ (default, Apr 17 2016, 14:00:29)
[GCC 5.3.1 20160413] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import scipy
>>> import sympy
>>> import matplotlib
>>> import pandas
>>>
但是我想知道是否有任何方法可以从终端输入python
并在python命令行中导入这些模块?例如,如果我编写这样的程序,
x = 2
print x
y = 5
print y
print x+y
import numpy
import scipy
import sympy
将其保存在我的桌面中名为 test.py 的文件中,然后使用命令打开它 /usr/bin/python test.py
,我得到了所需的输出。
$ /usr/bin/python test.py
2
5
7
但是如果我尝试使用命令 python test.py
进行相同的操作,我会再次收到错误
$ python test.py
2
5
7
Traceback (most recent call last):
File "test.py", line 8, in <module>
import numpy
ImportError: No module named numpy
据我了解,python 无法访问系统范围的模块,因为它是在本地安装的。如果是这样,有没有办法使python全局或Python本地模块?在过去的几个小时里,我一直在尝试寻找解决方案,但我还没有找到任何东西,而且我是 Linux 的新手。感谢您的帮助。
我认为根本原因是您在$PATH下有几个python二进制文件,并且您的系统默认情况下不使用/usr/bin/python
。
- 运行命令
which python
以查看默认使用哪个 Python - 将默认的 Python 文件重命名为"python-2-7-12"
然后尝试再次运行python test.py
以查看是否已解决。