configuração do ambiente para importar um módulo definido pelo usuário

0

Estou criando um módulo User defined e um arquivo .so e importando isso no módulo python.

As funções na biblioteca não estão respondendo conforme o esperado.

Quais são as variáveis de ambiente a serem definidas para incluir todos os caminhos e cabeçalhos da biblioteca?

Onde exatamente o arquivo .so deve estar presente (estou colocando em /usr/lib/python2.7/dist-packages)?

Há alguma outra configuração necessária para referenciar os caminhos e os cabeçalhos da biblioteca?

    
por Bharathi 02.04.2014 / 13:46

1 resposta

1

Se você já colocou seu arquivo .so em /usr/lib/python2.7/dist-packages , tente criar um novo arquivo python (no mesmo diretório) chamado 'my_lib.py'.

Coloque o código abaixo:

def __bootstrap__():
   global __bootstrap__, __loader__, __file__
   import sys, pkg_resources, imp
   __file__ = pkg_resources.resource_filename(__name__,'hello_world.so')
   __loader__ = None; del __bootstrap__, __loader__
   imp.load_dynamic(__name__,__file__)
__bootstrap__()

Pode ser necessário instalar python-pkg-resources :

sudo apt-get install python-pkg-resources

Agora você pode importar este my_lib como:

>>> import my_lib

EDITAR : para gerenciar corretamente várias extensões, recomendo empacotá-las usando distutils e depois instalá-los usando apenas

./setup.py build
sudo ./setup.py install

Fonte

    
por Sylvain Pineau 02.04.2014 / 14:04