We are pleased to announce that we have now released version 2.1.0 of the CSD Python API for both Python 2.7 and Python 3.7. We have updated the original post with links to these new versions of the API
This forum is for queries regarding the CSD Python API. For help with ConQuest can you please re-send your message to our support team at firstname.lastname@example.org who should be able to help you further.
The CSD Python API version 2.0 does require access to a display - this does not need to be a physical display though. We would recommend use of xdummy as a virtual display for this purpose.
It is also possible to start the API without a display by setting the environment variable CCDC_PYTHON_API_NO_QAPPLICATION to any value - however, we do not support use of the API in this manner, as parts of the API that require access to a display will fail.
You do also appear to have a couple of other issues when importing ccdc:
1. The error "QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 0". The API uses the standard environment variable XDG_RUNTIME_DIR to define a temporary location - it may be that you do not have proper permissions for /run/user/1000, which is likely what XDG_RUNTIME_DIR is set to for the user you are logged in as, so you can either look at setting permissions for that directory properly, or else set XDG_RUNTIME_DIR to a different directory you know you have write permission for.
2. The more worrying error is "python: relocation error: /PUBLIC/apps/anaconda2//lib/python2.7/site-packages/ccdc/_lib/libQt5XcbQpa.so.5: symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference". The version of libQt5Core.so.5 we bundle with the API should contain the _ZdlPvm symbol, so the error suggests that it is linking to another version of libQt5Core.so.5. Have you correctly set LD_LIBRARY_PATH so that /PUBLIC/apps/anaconda2//lib/python2.7/site-packages/ccdc/_lib is the first directory? That should ensure the correct version is picked up.
If you are using $PYTHONHOME in your .bashrc or similar then it will need to be set beforehand - to keep things simple you may want to use the explicit value instead when setting LD_LIBRARY_PATH so you don't need to worry about PYTHONHOME. So a line such as
However, your error makes me suspect that there is a library issue with your desktop software when it loads if you do this - it's possible that the desktop requires different versions of some libraries we include with our API, and this export command will cause our library location to be searched first for anything that you subsequently load (as it is first in the list). This can break other software, so it's really best to only set this environment when using python with our API.
What I'd suggest using instead is python's virtualenv. This allows you to set up a virtual python environment that you can source at the command line, and that virtual environment can include environment variables. You would then only source this environment when you're working with python and our API. Some documentation on virtualenv can be found here:
Once created, you would need to edit the activate or postactivate script for the created environment to also include your export LD_LIBRARY_PATH command. This is a good guide to doing that (with virtualenv and virtualenvwrapper):
These forums are for discussion and help with the CSD Python API specifically, rather than the other components of the CSD System such as ConQuest. For help with these we'd recommend contacting our user support team (email@example.com).
However, for this issue I'd recommend the following:
1. Open a Terminal window
rm -rf csds_data
That should then allow ConQuest to start. If problems persist, as mentioned above please do contact CCDC support for further help.
For issues such as this with ConQuest, the following steps will usually allow the program to open up successfully again:
1. Open a terminal window
2. In the terminal window, type the following three commands:
rm -rf csds_data
As this forum is for CSD Python API discussion, rather than ConQuest, I will now close this thread, but if you do continue to experience problems please do contact us at firstname.lastname@example.org
Yes this should be entirely possible and the method is indeed similar to a standard PC install. The main difference is that you'll want to install to a location that is accessible by each node in the cluster (clusters usually have disk space that is accessible by all nodes). The easiest way to install the CSD Python API is to install the CSD System sofware on to the cluster - this installs the CSDS software, CSDS data and also the CSD Python API with its own miniconda distribution and the CSD Python API pre-installed and ready for use.
You can also perform a more 'advanced' install into your own Python distribution using the pip or conda packages we supply. This will need at least a data CSDS install via the above mentioned installer in order to use the API. See https://www.ccdc.cam.ac.uk/forum/csd_python_api/General/6a879cb7-a497-e611-bb54-005056975d8a for more details.
For your cluster the main issue you will likely encounter is licensing - each computer node of the cluster will need to be registered, as CSD licensing is based on node-locked registration. We do have a batch registration tool that should help you to automate this registration - see https://www.ccdc.cam.ac.uk/support-and-resources/support/case/?caseid=c9c53a6b-e7e6-e611-8591-005056868fc8
On Windows the CSD Python API should use the registry key entries set up by the CSDS installer to work out where your data directory is, and if that contains a csd_licence.dat licence file then it should pick it up from there. You can use CSDHOME to override this, but usually it should not be necessary.
Mercury is one of the programs in the CSD package that can be started without a licence present (it will have reduced functionality until the package is licensed) so it is worth checking it by going to Help->About Mercury. Does it state it is registered, and if so where is the licence file it is stating it is using? Note that for the API to pick up the licence file automatically it will need to either be in the CSD data directory (in your case C:\Program Files (x86)\CCDC\CSD_2016\CSD V5.37) or in the home area of the user that is running it. With use of admin/user accounts in your post, I'd recommend the licence file being located in the database directory so all users can access it.
Note that rather than trying to run the tests, the correct reading of a licence can be tested with the following at your python command line prompt:
This should output the CSD databases in use if the licence check passes and give the error you have described if not.
Lastly, if your organisation has access to the 2017 release, I would recommend taking a look at that - it comes with its own python pre-installed for ease of use.
The main CSDS and SQLite installers can be run in an unattended mode at the command line - see this FAQ for more details:
All of our installers should detail the various command line options if you run them with the --help argument. This should allow you to install these packages in a simpler way than in the script you provided.
You are also correct that with the current release, licensing expects the ability to use a GUI for standard licensing - we do have some tools to help here, though, and a command line registration utility will be included with the forthcoming CSDS release to make this process a little easier.
Other than these two difficulties, as you've noted there are some package dependencies (such as libGL) that once installed should allow you to use the Python API on your headless system without too much difficulty.
For future reference this forum is for discussion of the CSD Python API - for support of our other products please contact at us at email@example.com.
Exporting to PDF should be resolved in the first update we released for the 2016 CSD System in February - please ensure that this has been installed (if it has, ConQuest's Help->About ConQuest menu should report itself as 'Build RC2').
The software update can be obtained via the details given here: http://www.ccdc.cam.ac.uk/support-and-resources/ccdcresources/downloadcsd2016-updatecsd2016/