【问题标题】:python import successful in one terminal but fails in anotherpython导入在一个终端成功,但在另一个终端失败
【发布时间】:2018-10-10 19:59:56
【问题描述】:

我成功下载并安装(构建 + 制作)一个 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 文件)有关吗?如果导入成功,为什么下次会失败?

【问题讨论】:

    标签: python g2o


    【解决方案1】:

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

    在 ~/.bashrc 中,添加:

    export PYTHONPATH=$PYTHONPATH:path/to/g2opy
    

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

    【讨论】:

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

    如果本地安装包,需要设置PYTHONPATH。好像没有设置好。

    【讨论】:

    • 快速提问:当我将它添加到我的 PYTHONPATH 时,我在使用不同的 python 环境时会遇到任何问题吗?
    • 你不应该 AFAIK。
    猜你喜欢
    • 2012-05-09
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 2022-11-26
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 2014-04-07
    相关资源
    最近更新 更多