Hi, Some questions first:
Can you help me understand why you're setting WALLET_LOCATION? EXPIRE_TIME? SSL_VERSION?
Where does the client reside in relation to the DB? Same server / different server?
You have a lot of lines in your sqlnet.ora that we would not advice you set manually anymore. For example, anything CLIENT shouldn't be set on the DB server. All of these SQLNET.* parameters will default automatically to parameters that lead the client and database to create an encrypted session.
What happens if you remove all of the SQLNET.* parameters and run the program, does it work? If so, can you query the NETWORK_SERVICE_BANNER column of the database view V$SESSION_CONNECT_INFO to verify the encryption status of a connection. If both the client and the database are set to "requested" (the default) then the connection should show encrypted and the level of encryption (probably AES256).
Can you let us know what happens?
The error message full text states:
$ oerr ORA 12650
12650, 00000, "No common encryption or data integrity algorithm"
// *Cause: The client and server have no algorithm in common for
// either encryption or data integrity or both.
// *Action: Choose sets of algorithms that overlap. In other words,
// add one of the client's algorithm choices to the server's
// list or vice versa.
...so is that your problem, sqlnet.ora on client and server have conflicting values set up?
What Oracle documentation did you you use as a reference for setting up your TDE security?
Have you got Oracle Client libraries accessible in your PATH (windows) or LD_LIBRARY_PATH (Linux)?
Before getting caught up with trying to get python/cx_Oracle working, it'll be simpler to do it with sqlplus first.