Caminho do módulo Python não encontrado

1

Em nossa instalação do Openstack, algo deu errado. Agora python não funciona mais corretamente. O caminho do módulo não foi encontrado:

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

Se eu adicionar o caminho do módulo via variável de ambiente, este erro desaparece ... (o outro erro não importa no momento)

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

Detalhe estranho: Mesmo sem definir a variável de ambiente python -m site parece saber o caminho certo:

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

Como o python também não funciona no Apache para o painel, não é uma opção definir a variável de ambiente com "export" todas as vezes. Precisamos corrigir o problema em outro lugar.

Onde o python inclui o caminho configurado?

ATUALIZAÇÃO:

A ordem dos caminhos lib parece ser importante. Isso está funcionando:

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

e isso não está funcionando:

PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages; keystone token-get
    
por Peter 19.05.2016 / 19:06

1 resposta

2

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

funcionou para mim, thx

    
por 29.06.2016 / 10:37