(The previous email was sent accidentally while I was still composing)

Dear Open Babel developers and community,

I'm currently trying to build a pre-compiled Python wheel for Open Babel
2.4.1
that is to be installed on Compute Canada's HPC clusters so that users can
quickly install tested python packages into their home directory.

I have already installed Open Babel 2.4.1, which works just fine, but once I
want to use the pybel installed with "pip install ..." - either from a wheel
that I have created with "pip wheel openbabel" - or like demonstrated below
by compiling on installation, I get the error following error when testing:
"ValueError: smi is not a recognised Open Babel format"

The environment variables BABEL_LIBDIR and BABEL_DATADIR are set correctly
and when I run ldd on the `_openbabel.so`, it can find all dependencies,
as our compilers set RUNPATHs for all executables and libraries.
I have confirm with `readelf -d _openbabel.so` that the RPATH is correctly
set.

​The curious thing is, that before when I installed the Python bindings
with CMake, it
worked just fine. The disadvantage with that however is that I can only
install either
the Python 2.x or ​3.y bindings and that I need to set a PYTHON path in the
environment module, which can make problems when someone wants to use
a different Python version.
Having pre-compiled wheels in a wheelhouse that can swiftly be installed
in a virtual env is a much cleaner solution.

​Below I demonstrate how I load my modules, show that obabel works,
create a python virtualenv​ in which the python bindings are installed.
When running readstring("smi", "CCCC") python will throw the error.

Does anyone have an idea where could be the problem?

​Oliver​


​$ *module load openbabel python/2.7.13*

$ *module list*
Currently Loaded Modules:
  1) nixpkgs/16.09     (S)      7) openmpi/2.1.1   (m)
  2) icc/.2016.4.258   (H)      8) StdEnv/2016.4   (S)
  3) gcccore/.5.4.0    (H)      9) eigen/3.3.2     (math)
  4) ifort/.2016.4.258 (H)     10) boost/1.60.0    (t)
  5) intel/2016.4      (t)     11) openbabel/2.4.1
  6) imkl/11.3.4.258   (math)  12) python/2.7.13   (t)

$ *echo CCCC | obabel -i smi -o cml -*
<?xml version="1.0"?>
<molecule xmlns="http://www.xml-cml.org/schema";>
 <atomArray>
  <atom id="a1" elementType="C"/>
  <atom id="a2" elementType="C"/>
  <atom id="a3" elementType="C"/>
  <atom id="a4" elementType="C"/>
 </atomArray>
 <bondArray>
  <bond atomRefs2="a1 a2" order="1"/>
  <bond atomRefs2="a2 a3" order="1"/>
  <bond atomRefs2="a3 a4" order="1"/>
 </bondArray>
</molecule>
1 molecule converted

$ *virtualenv babel*
New python executable in /home/stuekero/openbabel_test/babel/bin/python2.7
Also creating executable in /home/stuekero/openbabel_test/babel/bin/python
Installing setuptools, pip, wheel...done.

$ *source babel/bin/activate*

(babel)$ *pip --no-cache-dir install openbabel*
Collecting openbabel
  Downloading openbabel-2.4.1.tar.gz (74kB)
    100% |####################| 81kB 6.5MB/s
Installing collected packages: openbabel
  Running setup.py install for openbabel ... done
Successfully installed openbabel-2.4.1

(babel)$ *python test_openbabel.py*
Traceback (most recent call last):
  File "test_openbabel.py", line 4, in <module>
    mymol = readstring("smi", "CCCC")
  File 
"/home/stuekero/openbabel_test/babel/lib/python2.7/site-packages/pybel.py",
line 199, in readstring
    raise ValueError("%s is not a recognised Open Babel format" % format)
ValueError: smi is not a recognised Open Babel format

(babel)$ *echo $BABEL_LIBDIR *
/cvmfs/soft.computecanada.ca/easybuild/software/2017/avx2/
Compiler/intel2016.4/openbabel/2.4.1/lib/openbabel/2.4.1

(babel)$ *echo $BABEL_DATADIR *
/cvmfs/soft.computecanada.ca/easybuild/software/2017/avx2/
Compiler/intel2016.4/openbabel/2.4.1/share/openbabel/2.4.1

(babel)$ *python -c "from pybel import * ; print 'smi' in informats "*
True
​
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to