Como instalo o pybel de modo que meu ambiente python o reconheça?

6

Em Química Stack Exchange , fiz uma pergunta sobre o Open Babel & amp; Python sendo usado em conjunto.

O problema é que a resposta que me foi fornecida (por Geoff Hutchinson) requer que o Python consiga importar o módulo Pybel.

Instalei o Open Babel neste PC através de duas formas, APT e source. Em seguida, apaguei a instalação do APT depois que percebi que o pybel não estava disponível para uso em Python e decidi instalar a partir do código-fonte com ligações Python.

Para fazer isso, eu segui este guia com o comando final sendo personalizado para (em execução de ~/build )

cmake ../openbabel-2.3.2 -DBUILD_GUI=ON -DPYTHON_BINDINGS=ON

que deu a saída:

-- Using included inchi library.
-- Found wxWidgets: TRUE  
-- Cairo found. PNG output will be supported.
-- Attempting to build the GUI
--    wxWidgets found => GUI will be built
CMake Warning (dev) at test/CMakeLists.txt:171 (include):
  Syntax Warning in cmake code at

    /home/fusion809/Downloads/openbabel-2.3.2/cmake/modules/UsePythonTest.cmake:54:14

  Argument not separated from preceding token by whitespace.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at test/CMakeLists.txt:171 (include):
  Syntax Warning in cmake code at

    /home/fusion809/Downloads/openbabel-2.3.2/cmake/modules/UsePythonTest.cmake:54:31

  Argument not separated from preceding token by whitespace.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at test/CMakeLists.txt:171 (include):
  Syntax Warning in cmake code at

    /home/fusion809/Downloads/openbabel-2.3.2/cmake/modules/UsePythonTest.cmake:57:25

  Argument not separated from preceding token by whitespace.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at test/CMakeLists.txt:171 (include):
  Syntax Warning in cmake code at

    /home/fusion809/Downloads/openbabel-2.3.2/cmake/modules/UsePythonTest.cmake:57:39

  Argument not separated from preceding token by whitespace.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Python bindings will be compiled
-- Could NOT find Ruby (missing:  RUBY_INCLUDE_DIR RUBY_LIBRARY RUBY_CONFIG_INCLUDE_DIR) (found version "2.1.0")
-- Ruby library files NOT found. Ruby bindings will NOT be compiled.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/fusion809/build

Devo mencionar, no entanto, que na primeira vez que compilei o Open Babel, esqueci de adicionar o -DBUILD_GUI & amp; -DPYTHON_BINDINGS comandos para a linha cmake, então eu tive que executar este novo comando cmake depois que eu tinha inicialmente compilado o software. isso faz alguma diferença? Devo remover o Open Babel e recompilar? Em caso afirmativo, tenho que excluir alguns arquivos no meu diretório /usr/ (caso afirmativo, mencione-os, pois não sei quais)? Se relevante eu estou em 32 bits 15.04.

EDITAR

Eu apaguei o conteúdo e & amp; começou de novo e depois do comando cmake eu corri:

make
sudo make install
export PYTHONPATH=/usr/local/lib:$PYTHONPATH

No final da saída, recebi estas duas linhas:

-- Up-to-date: /usr/local/lib/openbabel.py
-- Up-to-date: /usr/local/lib/pybel.py

Em um terminal Python, executei import openbabel e import pybel e ele deu a saída: ImportError: No module named ... onde ... é openbabel ou pybel, dependendo de quais comandos foram executados, então suspeito que seja um problema em Fim da instalação do meu Python.

    
por BH2017 16.05.2015 / 05:33

2 respostas

3

Sem python-openbabel :

% python
Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import openbabel
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named openbabel
>>>

% python
Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pybel
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pybel
>>>

Instale python-openbabel :

sudo apt-get install python-openbabel

Verifique:

% python  
Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import openbabel
>>>

% python                     
Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pybel
>>>
    
por A.B. 16.05.2015 / 14:24
1

Eu tive o mesmo problema e descobri que estava usando uma distribuição python (Anaconda) diferente da original (fornecida pelo Ubuntu). Abaixo está uma possível solução alternativa (se for esse o caso).

Depois de instalar o python-openbabel usando o apt-get, verifique com o python fornecido pelo sistema (no meu caso /usr/bin/python ). Você deve conseguir importar o openbabel:

% /usr/bin/python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import openbabel
>>>

Eu tentei usar o easy_install fornecido pelo Anaconda para instalar o openbabel & amp; pybel mas não foi bem sucedido. Então eu copiei os arquivos *openbabel* e *pybel* em /usr/lib/python2.7/dist-packages/ para uma pasta que PYTHONPATH vê e funcionou bem. Eu apreciaria se alguém tivesse uma maneira melhor (mais limpa) de fazer o uso do pacote do Anaconda para o python fornecido pelo sistema.

(Eu queria comentar a resposta, mas devido à falta de reputação que eu não pude)

    
por emre 16.12.2015 / 13:10