6
votes

I was trying to install Datastax Python Cassandra driver on Ubuntu 14.04.5. LTS. Installation succeeds but subsequent attempt to use it fails with the error:

Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-91-generic x86_64)
~$ python3 --version
Python 3.5.2
~$ python3 -c 'import cassandra; print(cassandra.__version__)'
3.7.0
~$ python3 cassandra_loader.py
Traceback (most recent call last):
  File "cassandra_loader.py", line 7, in 
    from cassandra_tools import transform_record, QueryManager
  File "../lib/cassandra_tools.py", line 6, in 
    from cassandra.cluster import Cluster
  ImportError: /usr/local/lib/python3.5/site-packages/cassandra/cluster.cpython-35m-x86_64-linux-gnu.so: undefined symbol: PyException_Check

same installation process and same code works well on RedHat. Google search for error code returns nothing. Anybody has an idea of what could be the issue?

2
I too am facing the same issue in production. Observed this Warning while building the driver: cassandra/cluster.c:16461:7: warning: implicit declaration of function ‘PyException_Check’ [-Wimplicit-function-declaration] __pyx_t_15 = PyException_Check(__pyx_v_f); ^Lokesh Tiwari
We have the same issue, it first occurred 12 hours ago or something, we are using Python2.7 thoughvovaminiof
datastax-oss.atlassian.net/browse/PYTHON-656 workaround is mentioned herevovaminiof

2 Answers

4
votes

This is duplicate of this question: cluster.cpython-34m.so: undefined symbol: PyException_Check

I answered it there but here is copy of the answer as I can't comment.


Latest version of Cython (0.25) released today broke cassandra-driver.

Workaround for this issue it to install Cython==0.24.1 before installing cassandra-driver.

(env) $ pip install Cython==0.24.1 (env) $ pip install cassandra-driver

You may need to remove existing cassandra-driver package first from site-packages:

rm -r $WHERE_PYTHON_IS_INSTALLED/lib/python2.7/site-packages/cassandra*

See https://datastax-oss.atlassian.net/browse/PYTHON-656 for more information

1
votes

We just released a patch version 3.7.1 to fix that issue caused by the new version of Cython. Upgrade your cassandra-driver:

    pip install --upgrade cassandra-driver