2016-05-20 5 views
0

На нашей установке Openstack что-то ужасно пошло не так. Теперь python не работает должным образом. Путь модуля не найден:Путь модуля Python не найден

[email protected]:/root# keystone token-get 
Traceback (most recent call last): 
    File "/usr/bin/keystone", line 6, in <module> 
    from keystoneclient.shell import main 
ImportError: No module named shell 

Если добавить путь модуля через переменные среды, эта ошибка исчезает ... (другая ошибка не имеет значения в данный момент)

[email protected]:/root# export PYTHONPATH=/usr/lib/python2.7/dist-packages 
[email protected]:/root# keystone token-get 
Authorization Failed: Unable to establish connection to http://controller:35357/v2.0/tokens 

Одда детали : Даже без установки переменного окружения сайта питона -m, кажется, знают правильный путь:

sys.path = [ 
'/root', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
] 
USER_BASE: '/root/.local' (doesn't exist) 
USER_SITE: '/root/.local/lib/python2.7/site-packages' (doesn't exist) 
ENABLE_USER_SITE: True 

Как питон также не работает в Apache для приборной панели, это не вариант для установки ENVI переменной «ronment» с «export» каждый раз. Нам нужно решить проблему в другом месте.

Где находится путь для пула python?

UPDATE:

Порядок Lib путей кажется, имеет значение. Это работает:

PYTHONPATH=/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages; keystone token-get 

и это не работает:

PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages; keystone token-get 

ответ

0

В зависимости от вашего дистрибутива, два общих мест:

добавить export pythonpath=apath; another/one;

в /etc/profile будет общесистемным или ~/.bash-profile будут указаны пользователем

+0

Будет ли apache2 читать/etc/profile? – Peter

+0

Питер, машина прочитает его при загрузке. После этого Apache запускается и будет видеть это. – Louis