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

python导入在一个终端中成功,但在另一个终端中失败,python,g2o,Python,G2o,我成功下载并安装了一个cython软件包(build+make)。当我试着检查一切是否顺利时,我发现: (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", "copyrigh

我成功下载并安装了一个cython软件包(build+make)。当我试着检查一切是否顺利时,我发现:

(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'
(cv)clmno@machine:~$python
Python 3.4.5 | Continuum Analytics,Inc.|(默认,2016年7月2日,17:47:47)
linux上的[GCC 4.4.7 20120313(Red Hat 4.4.7-1)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口g2o
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为“g2o”的模块

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

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

如果您在本地安装了该软件包,则需要设置
PYTHONPATH
。似乎设置不正确。

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

在~/.bashrc中,添加:

export PYTHONPATH=$PYTHONPATH:path/to/g2opy

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

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

在~/.bashrc中,添加:

export PYTHONPATH=$PYTHONPATH:path/to/g2opy

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

快速问题:当我将其添加到PYTHONPATH时,在使用其他python环境时会遇到任何问题吗?您不应该担心。快速问题:当我将其添加到PYTHONPATH时,在使用其他python环境时会遇到任何问题吗不应该。嘿,快速提问:当我添加PYTHONPATH时,我无法添加其他模块(cv2、numpy等)。看来原来的路已经走丢了。如何将其附加到原始路径中,或者如何修复此问题以包含其他模块?因此,这取决于您如何安装这些库。我认为如果您安装了带有pip的,那么应该将它们添加到
/usr/lib/python2.7/
。检查numpy和cv2是否在这些目录中,在这种情况下,将导出更改为:export PYTHONPATH=$PYTHONPATH:path/to/g2opy:/usr/lib/python2.7如果它们不是使用pip安装的,则需要找到它们的安装位置并将这些路径添加到PYTHONPATH。通常,使用build\u make手动安装软件包不是一个好主意。如果可以,请始终尝试使用pip(尽管g2opy似乎没有pip绑定)。如果发现PYTHONPATH集没有任何功能,则可以始终将其从.bashrc中删除并打开一个新的终端窗口。另一种选择是将g2opy库移动到/usr/lib/python2.7目录(或者您使用的任何版本的Python),然后您应该能够导入它。嘿,快速问题:当我添加PYTHONPATH时,我无法添加其他模块(cv2、numpy等)。看来原来的路已经走丢了。如何将其附加到原始路径中,或者如何修复此问题以包含其他模块?因此,这取决于您如何安装这些库。我认为如果您安装了带有pip的,那么应该将它们添加到
/usr/lib/python2.7/
。检查numpy和cv2是否在这些目录中,在这种情况下,将导出更改为:export PYTHONPATH=$PYTHONPATH:path/to/g2opy:/usr/lib/python2.7如果它们不是使用pip安装的,则需要找到它们的安装位置并将这些路径添加到PYTHONPATH。通常,使用build\u make手动安装软件包不是一个好主意。如果可以,请始终尝试使用pip(尽管g2opy似乎没有pip绑定)。如果发现PYTHONPATH集没有任何功能,则可以始终将其从.bashrc中删除并打开一个新的终端窗口。另一种方法是将g2opy库移动到/usr/lib/python2.7目录(或您正在使用的Python的任何版本),然后您应该能够导入它。