Python 모듈 경로를 찾을 수 없습니다.

Python 모듈 경로를 찾을 수 없습니다.

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 사이트 환경 변수를 설정하지 않아도 올바른 경로를 알고 있는 것 같습니다.

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에서 작동하지 않으므로 매번 "내보내기"로 환경 변수를 설정하는 것은 옵션이 아닙니다. 다른 곳에서 문제를 해결해야 합니다.

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

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

나를 위해 일했어요, 고맙습니다

관련 정보