1

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

root@controller:/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

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

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

Странная деталь: даже без установки переменной окружения python -m site, кажется, знает правильный путь:

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

Поскольку python также не работает в Apache для панели инструментов, он не позволяет каждый раз устанавливать переменную окружения с помощью "export". Нам нужно решить проблему в другом месте.

Где настроен путь включения Python?

ОБНОВИТЬ:

Порядок путей 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

1 ответ1

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

работал на меня, спасибо

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .