Как мне установить pybel так, чтобы моя среда python распознала его?

На Chemistry Stack Exchange я задал вопрос о совместном использовании Open Babel и Python.

Проблема в том, что ответ, который мне дал (Джефф Хатчинсон), требует, чтобы Python мог импортировать модуль Pybel.

Я установил Open Babel на этот компьютер двумя способами: APT и source. Затем я удалил установку APT после того, как понял, что pybel недоступен для использования с Python, и решил установить из исходного кода с привязками Python.

Для этого я следовал этому руководству , для конечной команды было настроено (начиная с ~/build)

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

, что дало вывод:

-- 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

Однако я должен упомянуть, что когда я впервые скомпилировал Open Babel, я забыл добавить команды -DBUILD_GUI и -DPYTHON_BINDINGS в строку cmake, поэтому мне пришлось запустить эту новую команду cmake после того, как я изначально скомпилировал программного обеспечения. Это имеет какое-то значение? Должен ли я удалить Open Babel и перекомпилировать? Если да, мне нужно удалить некоторые файлы из моего каталога /usr/ в (если это так, пожалуйста, укажите их, поскольку я не знаю, какие из них)? Если актуально, я нахожусь на 32 бит 15.04.

РЕДАКТИРОВАТЬ

Я удалил содержимое моего каталога сборки и снова запустился, и после команды cmake я выполнил:

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

В конце полученного мной вывода были эти два lines:

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

В терминале Python я запустил import openbabel и import pybel, и он дал вывод: ImportError: No module named ... где ... - openbabel или pybel, в зависимости от того, какие команды были выполнены , так что я подозреваю, что это проблема в конце моей установки Python.

6
задан 16 May 2015 в 13:45

2 ответа

Без 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
>>>

Установка python-openbabel:

sudo apt-get install 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
>>>

% 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
>>>
0
ответ дан 16 May 2015 в 13:45

Я имел ту же проблему и выяснил, что использовал распределение Python (Анаконда) кроме оригинала (тот, обеспеченный Ubuntu). Ниже потенциальное обходное решение (если это верно).

После установки python-openbabel, использующего склонный - получают, проверяют его с обеспеченным системой Python (в моем случае /usr/bin/python). Необходимо быть в состоянии импортировать 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
>>>

я пытался использовать easy_install обеспеченный Анакондой для установки openbabel & pybel, но это не было успешно. Тогда я скопировал *openbabel* и *pybel* файлы в /usr/lib/python2.7/dist-packages/ к папке, которая PYTHONPATH видит, и она хорошо работала. Я ценил бы, если у кого-либо есть более хороший (более чистый) способ сделать использование Анаконды пакета установленным для обеспеченного системой Python.

(я хотел прокомментировать к ответу, но из-за отсутствия репутации я не мог)

1
ответ дан 16 May 2015 в 23:45
  • 1
    Все драйверы Nvidia могут быть установлены от repos, и он не имеет значения, он UEFI или нет. – Pilot6 17 August 2016 в 00:48

Другие вопросы по тегам:

Похожие вопросы: