This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Python bindings to the ObjCryst++ library.

Project Description

pyobjcryst

Python bindings to ObjCryst++, the Object-Oriented Crystallographic Library.

The documentation for this release of pyobjcryst can be found on-line at http://diffpy.github.io/pyobjcryst.

REQUIREMENTS

pyobjcryst requires Python 3.6, 3.5, 3.4 or 2.7, C++ compiler and the following software:

  • libobjcryst - Object-Oriented Crystallographic Library for C++, https://github.com/diffpy/libobjcryst
  • setuptools - tools for installing Python packages
  • NumPy - library for scientific computing with Python
  • python-dev - header files for interfacing Python with C
  • libboost-all-dev - Boost C++ libraries and development files
  • scons - software constructions tool (optional)

We recommend to use Anaconda Python as it allows to install all software dependencies together with pyobjcryst. For other Python distributions it is necessary to install the required software separately. As an example, on Ubuntu Linux the required software can be installed using

sudo apt-get install \
   python-setuptools python-numpy scons \
   build-essential python-dev libboost-all-dev

INSTALLATION

The preferred method is to use Anaconda Python and install from the “diffpy” channel of Anaconda packages

conda config --add channels diffpy
conda install pyobjcryst

pyobjcryst is also included in the “diffpy-cmi” collection of packages for structure analysis

conda install diffpy-cmi

If you prefer to use other Python distribution or install from sources, you must first install the libobjcryst library as per the instructions at https://github.com/diffpy/libobjcryst. Make sure other required software is also in place and then run:

python setup.py install

You may need to use sudo with system Python so the process is allowed to copy files to system directories. If administrator (root) access is not available, see the usage information from python setup.py install --help for options to install to a user-writable location. The installation integrity can be verified by executing the included tests with

python -m pyobjcryst.tests.run

An alternative way of installing pyobjcryst is to use the SCons tool, which can speed up the process by compiling C++ files in several parallel jobs (-j4):

scons -j4 install

See scons -h for description of build targets and options.

DEVELOPMENT

pyobjcryst is an open-source software developed as a part of the DiffPy-CMI complex modeling initiative at the Brookhaven National Laboratory. The pyobjcryst sources are hosted at https://github.com/diffpy/pyobjcryst.

Feel free to fork the project and contribute. To install pyobjcryst in a development mode, where its sources are directly used by Python rather than copied to a system directory, use

python setup.py develop --user

When developing it is preferable to compile the C++ files with SCons using the build=develop option, which compiles the extension module with debug information and C-assertions checks

scons -j4 build=debug develop

The build script checks for a presence of sconsvars.py file, which can be used to permanently set the build variable. The SCons construction environment can be further customized in a sconscript.local script. The package integrity can be verified by executing unit tests with scons -j4 test.

When developing with Anaconda Python it is essential to specify header path, library path and runtime library path for the active Anaconda environment. This can be achieved by setting the CPATH, LIBRARY_PATH and LDFLAGS environment variables as follows:

# resolve the prefix directory P of the active Anaconda environment
P="$(conda info --json | grep default_prefix | cut -d\" -f4)"
export CPATH=$P/include
export LIBRARY_PATH=$P/lib
export LDFLAGS=-Wl,-rpath,$P/lib
# compile and re-install pyobjcryst
scons -j4 build=debug develop

On Mac OS X the distributed Anaconda packages are built for operating system version 10.7, which may be incompatible with codes compiled on a newer OS. To avoid this problem set the environment variable MACOSX_DEPLOYMENT_TARGET=10.7. This allows to build pyobjcryst against the Anaconda package for the libobjcryst library.

CONTACTS

For more information on pyobjcryst please visit the project web-page

http://www.diffpy.org

or email Prof. Simon Billinge at sb2896@columbia.edu.

Release History

Release History

This version
History Node

2.0.2

History Node

2.0.1

History Node

2.0

History Node

1.0

History Node

1.0b4

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pyobjcryst-2.0.2.tar.gz (94.3 kB) Copy SHA256 Checksum SHA256 Source May 8, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting