импорт python успешен в одном терминале, но не в другом - PullRequest
0 голосов
/ 10 октября 2018

Я скачал и установил (build + make) пакет 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 голосов
/ 10 октября 2018

Во втором терминале вы запускаете Python в другом каталоге по сравнению с первым терминалом.Это говорит о том, что созданная вами библиотека не находится в пути Python.Он работал в первом терминале, потому что библиотека g2o находится в каталоге, где вы в данный момент используете Python.Как предложил Матье, добавьте «~ / OpenSource / python / g2opy» в переменную окружения PYTHONPATH.

В ~ / .bashrc добавьте:

export PYTHONPATH=$PYTHONPATH:path/to/g2opy

, затем выполните source ~/.bashrcобновить переменную среды в текущем пути.

0 голосов
/ 10 октября 2018

Если вы установили пакет локально, вам нужно установить PYTHONPATH.Похоже, он установлен неправильно.

...