如何让python访问ubuntu中的系统范围模块?
Posted
技术标签:
【中文标题】如何让python访问ubuntu中的系统范围模块?【英文标题】:How to give python access to system wide modules in ubuntu? 【发布时间】:2016-11-12 21:13:27 【问题描述】:我在 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
>>>
在做一些研究后,我从thread 发现,如果我使用/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 新手。感谢您的帮助。
【问题讨论】:
【参考方案1】:我认为根本原因是你在 $PATH 下有几个 python 二进制文件,而你的系统默认不使用/usr/bin/python
。
-
运行命令
which python
查看默认使用哪个python
将默认 python 文件重命名为“python-2-7-12”之类的名称
然后尝试再次运行python test.py
看看是否解决。
【讨论】:
另一种方法是你可以在你的配置文件中创建一个别名:vim ~/.bashrc alias python='/usr/bin/python' 第一种方法效果很好。当我运行which python
时,它显示/usr/local/bin/python
。所以我按照您的指示将那里的 Python 文件重命名为 Python_Default。现在,当我从终端运行 python 并输入import module
时,它就可以工作了。此外,which python
现在显示/usr/bin/python
。根目录中有三个不同的 python 文件。非常感谢您的帮助。
@rsnaveen 你自己安装了 Python 吗?除非您必须使用与 Ubuntu 16.04 已安装的 Python 不同的特定 Python 版本,否则没有理由这样做。
@edwinksl 我不知道 Ubuntu 预装了 python。伙计,我现在觉得自己很愚蠢!感谢您指出这一点。以上是关于如何让python访问ubuntu中的系统范围模块?的主要内容,如果未能解决你的问题,请参考以下文章
默认情况下通过 Ubuntu 10.10 上的 MySQLdb Python 库访问 XAMPP