ImportError: não é possível importar o nome ForwardHeaderGenerator

3

Estou tentando instalar a biblioteca KD Soap (componente SOAP do lado do cliente e do lado do servidor) e recebo este erro:

user@server:/path/KDSoap-master/autogen$ python autogen.py 
Traceback (most recent call last):
  File "autogen.py", line 11, in <module>
    from header import ForwardHeaderGenerator
  File "/path/KDSoap-master/autogen/header.py", line 6, in <module>
    import autogen
  File "/path/KDSoap-master/autogen/autogen.py", line 11, in <module>
    from header import ForwardHeaderGenerator
ImportError: cannot import name ForwardHeaderGenerator

Estou executando o python 2.7.5 no Ubuntu 14.04. O código-fonte da biblioteca pode ser visto em github.com/KDAB/KDSoap

    
por Latyyfa 14.09.2015 / 12:28

1 resposta

1

Resposta correta e atualizada:

Você tentou executar o pacote KDSoap de maneira incorreta. Você não deveria executar nenhum script no subdiretório ./autogen/ manualmente, de acordo com os mantenedores do pacote, mas usar o arquivo autogen.py do diretório-raiz do projeto:

you should be running python autogen.py from the top-level source or from a build dir

Fonte: GitHub: Comentário do mantenedor do pacote

Resposta errada, devido à falsa suposição da estrutura do pacote:

Open .../autogen/autogen.py with your preferred text editor.
We need to edit two lines.
  1. Search for line 11:

    from header import ForwardHeaderGenerator
    

    Replace it with:

    import header
    
  2. Search for line 99:

    forwardHeaderGenerator = ForwardHeaderGenerator( 
    

    Replace it with:

    forwardHeaderGenerator = header.ForwardHeaderGenerator( 
    

Those edits should do the trick. After you confirmed it works I will propose the edits to the GitHub repository.

    
por Byte Commander 14.09.2015 / 13:28