o módulo pycryptodome não pode ser importado como roda

1

Eu fiz o download do arquivo de formato do módulo pycryptodome python ( pycryptodome.whl ) em este link .

Agora, quando tento importar e usá-lo da seguinte forma

from Crypto.PublicKey import RSA

Eu obtenho

ImportError: No module named Crypto.PublicKey

Eu tenho outro módulo chamado PyVMOMI ( pyvmomi.whl ) onde não vejo este problema. Eu posso muito bem importar qualquer um dos seus arquivos de módulo sem qualquer erro.

Nota: o diretório onde o arquivo *. whl está localizado já está definido na variável PYTHONPATH .

    
por Ibrahim Quraish 19.07.2018 / 14:09

1 resposta

0

  1. As rodas não devem ser importadas diretamente. Enquanto isso pode trabalhar com pacotes simples, não é garantido que funcione para todas as rodas, então eu não confiaria nele. Consulte PEP 491 , seção É possível importar código Python diretamente de um arquivo de roda?

  2. Mesmo com arquivos zip comuns em sys.path , nenhuma biblioteca dinâmica será importada de arquivos zip. Citando PEP 273 , seção Especificação :

Any files may be present in the zip archive, but only files *.py and *.py[co] are available for import. Zip import of dynamic modules (*.pyd, *.so) is disallowed.

Isso é o que acontece com pycryptodome : ele envia módulos de extensão C, pré-compilados em bibliotecas dinâmicas, que não são importadas da roda. Você precisará instalar a roda para poder usar o código das extensões:

$ pip install pycryptodome
    
por 19.07.2018 / 23:29

Tags