python导入在一个终端中成功,但在另一个终端中失败

时间:2018-10-10 19:59:56

标签: python g2o

我成功下载并安装(构建+制造)cython软件包g2opy。当我尝试检查一切是否顺利时,我得到了:

(cv) clmno@machine:~/OpenSource/python/g2opy$ python
Python 3.4.5 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:47:47) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import g2o
>>> import numpy
>>> import cv2

所以,我认为一切都很好,并打开了另一个终端窗口。并尝试导入相同的模块,但失败了:

(cv) clmno@machine:~$ python
Python 3.4.5 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:47:47) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import g2o
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'g2o'

这与共享库(.so文件)有关吗?如果成功导入,为什么下次会失败?

2 个答案:

答案 0 :(得分:2)

在第二个终端中,与第一个终端相比,您正在其他目录中运行Python。这表明您构建的库不在Python路径中。它在第一个终端中起作用,因为g2o库位于您当前正在运行Python的目录中。按照Matthieu的建议,在您的PYTHONPATH环境变量中添加“〜/ OpenSource / python / g2opy”。

在〜/ .bashrc中,添加:

export PYTHONPATH=$PYTHONPATH:path/to/g2opy

然后运行source ~/.bashrc以更新当前路径中的环境变量。

答案 1 :(得分:1)

如果在本地安装了软件包,则需要设置PYTHONPATH。好像设置不正确。