如何让 python 访问 ubuntu 中的系统范围模块



我在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

  1. 运行命令which python以查看默认使用哪个 Python
  2. 将默认的 Python 文件重命名为"python-2-7-12"

然后尝试再次运行python test.py以查看是否已解决。

最新更新