title: Python3 cx-Oracle Oracle Client library cannot be loaded: "libclntsh.so" on Linux
body: <p>I have found similar questions by searching. However, the previous solutions seem to be centered around Windows and not Linux.</p>
  
  <p>1) Python version: Python 3.4.6</p>
  
  <p>2) OS version: Linux SLES 12.3</p>
  
  <p>3) Oracle DB Version: 11.2</p>
  
  <p>4) Oracle Client: 64-bit 11.2 instant client light, cx-Oracle 6.4.1</p>
  
  <p>5) LIBAIO : </p>
  
  <pre><code>S  | Name          | Summary                                                    | Type
  ---+---------------+------------------------------------------------------------+--------
  i+ | libaio-devel  | Development Files for Linux-native Asynchronous I/O Access | package
  i  | libaio1       | Linux-Native Asynchronous I/O Access Library               | package
     | libaio1-32bit | Linux-Native Asynchronous I/O Access Library               | package
  </code></pre>
  
  <p>6) Oracle Client Location: /opt/pyora/oracle_11.2/instantclient_11_2</p>
  
  <pre><code>drwxrwxrwx 1 virtual wheel       346 Oct 23 07:48 .
  drwxrwxrwx 1 virtual wheel       124 Oct 23 07:47 ..
  -rwxrwxrwx 1 virtual wheel     25420 Aug 24  2013 adrci
  -rwxrwxrwx 1 virtual wheel       449 Aug 24  2013 BASIC_LITE_README
  -rwxrwxrwx 1 virtual wheel       439 Aug 24  2013 BASIC_README
  -rwxrwxrwx 1 virtual wheel     47860 Aug 24  2013 genezi
  -rwxrwxrwx 1 virtual wheel  53865194 Oct 22 16:44 libclntsh.so
  -rwxrwxrwx 1 virtual wheel  53865194 Aug 24  2013 libclntsh.so.11.1
  -rwxrwxrwx 1 virtual wheel   7996693 Aug 24  2013 libnnz11.so
  -rwxrwxrwx 1 virtual wheel   1973074 Aug 24  2013 libocci.so.11.1
  -rwxrwxrwx 1 virtual wheel 118738042 Aug 24  2013 libociei.so
  -rwxrwxrwx 1 virtual wheel   9897206 Aug 24  2013 libociicus.so
  -rwxrwxrwx 1 virtual wheel    164942 Aug 24  2013 libocijdbc11.so
  -rwxrwxrwx 1 virtual wheel   2091135 Aug 24  2013 ojdbc5.jar
  -rwxrwxrwx 1 virtual wheel   2739616 Aug 24  2013 ojdbc6.jar
  -rwxrwxrwx 1 virtual wheel    192365 Aug 24  2013 uidrvci
  -rwxrwxrwx 1 virtual wheel     66779 Aug 24  2013 xstreams.jar
  </code></pre>
  
  <p>7) The code below sets the environment variables as well as attempts to make a connection: (run from python interactive shell)</p>
  
  <pre><code>from base64 import b64encode, b64decode # used for excoding/decoding base64 data
  from toml import load as toml_load # used to retreive config file data
  import cx_Oracle # used for accessing the Oracle databases
  import os
  import re
  import sys
  def decode_data(data):
      return b64decode(data).decode('ascii')
  path = os.environ["PATH"]
  os.environ["PATH"] = "/opt/pyora/oracle_11.2/instantclient_11_2:" + path
  os.environ["LD_LIBRARY_PATH"] = "/opt/pyora/oracle_11.2/instantclient_11_2"
  os.environ["ORACLE_HOME"] = "/opt/pyora/oracle_11.2/instantclient_11_2"
  os.environ["ORACLE_BASE"] = "/opt/pyora/oracle_11.2/instantclient_11_2"
  username = decode_data("***")
  password = decode_data("***")
  hostname=decode_data("***")
  port=decode_data("***")
  schema=decode_data("***")
  dsn ="{hostname}:{port}/{schema}".format(hostname=hostname,port=port,schema=schema)
  print("PATH="+os.environ["PATH"]+"\n")
  print("LS_LIBRARY_PATH="+os.environ["LD_LIBRARY_PATH"]+"\n")
  print("ORACLE_HOME="+os.environ["ORACLE_HOME"]+"\n")
  print("ORACLE_BASE="+os.environ["ORACLE_BASE"]+"\n")
  dconn = cx_Oracle.connect(user=username,password=password,dsn=dsn)
  </code></pre>
  
  <p>8) Below is the errors received:
  Standard User - </p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help
  </code></pre>
  
  <p>Sudo'd User - (right after import cx_Oracle)</p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  ImportError: libnnz11.so: cannot open shared object file: No such file or directory
  </code></pre>
  
  <p>I have follow the instructions for the link  found in the error message, but it was of no help.
  <a href="https://oracle.github.io/odpi/doc/installation.html#linux" rel="nofollow noreferrer">https://oracle.github.io/odpi/doc/installation.html#linux</a></p>
  
  <p>I did verify architecture on the various parts:</p>
  
  <p>Oracle instant client: 
    instantclient-basic-linux.x64-11.2.0.4.0.zip</p>
  
  <p>libaio:</p>
  
  <pre><code>libaio-devel-0.3.109-17.15.x86_64
  libaio1-0.3.109-17.15.x86_64
  </code></pre>
  
  <p>Python 3:</p>
  
  <pre><code>Python 3.4.6 (default, Mar 01 2017, 16:52:22) [GCC] on linux
  Type "help", "copyright", "credits" or "license" for more information.
  &gt;&gt;&gt; import platform
  &gt;&gt;&gt; platform.architecture()
  ('64bit', 'ELF')
  &gt;&gt;&gt;
  </code></pre>