Как установить openbabel для Python 3.6 в Windows 10?

Я использую Python для создания сценария для работы с некоторыми химическими структурами в моей докторской диссертации. Я хочу установить библиотеки openbabel для python. Я старался изо всех сил, но я не мог установить его. Это всегда дает ошибку:Error: SWIG failed. Is Open Babel installed?Вот путь Python на моем ПК: C:\Users\malih\AppData\Local\Programs\Python\Python36-32, Openbabel устанавливается по следующему пути C:\Program Files (x86)\OpenBabel-2.3.1,

Когда я бегу python -m pip install openbabel, это дает следующую ошибку:

C:\Users\malih>python -m pip install openbabel
Collecting openbabel
Using cached openbabel-2.4.1.tar.gz
Installing collected packages: openbabel
Running setup.py install for openbabel ... error
Complete output from command C:\Users\malih\AppData\Local\Programs\Python\Python36-32\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\malih\\AppData\\Local\\Temp\\pip-build-glr82a7x\\openbabel\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\malih\AppData\Local\Temp\pip-02z3p_a9-record\install-record.txt --single-version-externally-managed --compile:
running install
running build_ext
Warning: pkg-config could not be found.
Guessing Open Babel location:
- include_dirs: ['C:\\Users\\malih\\AppData\\Local\\Programs\\Python\\Python36-32\\include', 'C:\\Users\\malih\\AppData\\Local\\Programs\\Python\\Python36-32\\include', '/usr/local/include/openbabel-2.0']
- library_dirs: ['C:\\Users\\malih\\AppData\\Local\\Programs\\Python\\Python36-32\\libs', 'C:\\Users\\malih\\AppData\\Local\\Programs\\Python\\Python36-32\\PCbuild\\win32', '/usr/local/lib']
building '_openbabel' extension
swigging openbabel-python.i to openbabel-python_wrap.cpp
swig.exe -python -c++ -small -O -templatereduce -naturalvar -IC:\Users\malih\AppData\Local\Programs\Python\Python36-32\include -IC:\Users\malih\AppData\Local\Programs\Python\Python36-32\include -I/usr/local/include/openbabel-2.0 -o openbabel-python_wrap.cpp openbabel-python.i

Error: SWIG failed. Is Open Babel installed?
You may need to manually specify the location of Open Babel include and library directories. For example:
  python setup.py build_ext -I/usr/local/include/openbabel-2.0 -L/usr/local/lib
  python setup.py install

----------------------------------------
Command "C:\Users\malih\AppData\Local\Programs\Python\Python36-32\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\malih\\AppData\\Local\\Temp\\pip-build-glr82a7x\\openbabel\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\malih\AppData\Local\Temp\pip-02z3p_a9-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\malih\AppData\Local\Temp\pip-build-glr82a7x\openbabel\

Я пытался следовать инструкциям на этой странице, но они предназначены исключительно для Linux, и я не смог выполнить их для Windows: как использовать python-openbabel в Travis CI?

Я также пытался установить pkg-config из следующего руководства, но даже после этого выдает ту же ошибку: Как установить pkg config в windows?

Пожалуйста, помогите мне в этом, так как моя работа основана на этом, и я застрял в этой точке. Спасибо заранее за ваше время.

2 ответа

pip install общеизвестно, не окна дружелюбны. Либо зайдите на сайт openbabel и загрузите + установите бинарный файл windows, затем загрузите + установите привязку python, либо воспользуйтесь неофициальной официальной сборкой windows для openbabel python, затем cd в загруженный каталог и выполните pip install OPENBABEL_FILE_WINDOWS.whl

Недавно я немного поработал над переводом 2D-файлов -> Перевод 3D-файлов с использованием openbabel. Дайте мне знать, как это работает для вас.

-

редактировать: я также должен добавить, python3.x сильно отличается от python2.x. Так что, если что-то сломается, попробуйте это с python2.x

Это несколько старо, но проблемы все еще сохраняются, поэтому я все же отвечу.

Предварительно скомпилированный двоичный файл Windows (скорее всего) не поставляется со встроенным SWIG, который, в свою очередь, не предлагает языковых привязок и выдает ошибку при установке из pip. Обходной путь — установить колесо с неофициального веб- сайта двоичных файлов Windows, как ответил user6059235 .

Тем не менее, колеса уже поставляются в комплекте с предварительно скомпилированным obabel, поэтому вам действительно не нужно устанавливать версию двоичных файлов Windows (та, которая поставляется с установкой и всем остальным), но вы должны знать, что если вы хотите отправить сценарий Python, который использует эту библиотеку, знайте, что он будет мешать системам, которые имеют BABEL_DIRв переменных среды, чтобы исправить это, вы должны включить весь каталог openbabel из YourPythonDirectory/lib/site-packages/.в папке вашего скрипта.

Еще одним важным замечанием является то, что некоторые сборки babel с неофициального веб-сайта двоичных файлов имеют ошибку, из-за которой они не обнаруживают все форматы файлов, особенно самые распространенные, такие как sdf/pdb/mol2 или даже смайлы. Единственные версии, которые, как я подтвердил, работают несколько безупречно до сих пор, это openbabel‑3.1.1‑cp36‑cp36m‑win32.whlа также openbabel‑3.1.1‑cp38‑cp38‑win32.whl.

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