Я установил JupyterHub, используя контейнер Docker.
Я создал новую среду Anaconda Environment cx_oracle_env и установил пакет cx_Oracle в Терминале:
# Creates a new Anaconda Environment called "cx_oracle_env" using Python 3.7 in silent mode conda create -n cx_oracle_env python=3.7 -y # >>>> Returns no warnings / errors # Activates the Anaconda Environment "cx_oracle_env" conda activate cx_oracle_env # >>>> Returns no warnings / errors # Mamba is a reimplementation of the conda package manager in C++. # - parallel downloading of repository data and package files using multi-threading # - libsolv for much faster dependency solving, a state of the art library used in the # RPM package manager of Red Hat, Fedora and OpenSUSE # - core parts of mamba are implemented in C++ for maximum efficiency # At the same time, mamba utilize the same command line parser, package installation and # deinstallation code and transaction verification routines as conda to stay as compatible as # possible. # conda install mamba -n base -c conda-forge -y # >>>> Returns no warnings / errors # Installs ipykernel in currently active Anaconda Environment mamba install ipykernel -y # >>>> Returns no warnings / errors # Installs cx_Oracle python -m pip install cx_Oracle --upgrade # >>>> Returns no warnings / errors # Binds ipykernel "cx_oracle_env" to Anaconda Environment "cx_oracle_env" python -m ipykernel install --user --name cx_oracle_env --display-name="cx_oracle_env" # >>>> Returns no warnings / errors
Я загрузил ORACLE InstantClient Instantclient-basic-linux.x64-21.1.0.0.0.zip из https://www.oracle.com/uk/database/technologies/instant-client/linux-x86-64-downloads.html на мой локальный компьютер и загрузил zip-файл в рабочий каталог JupyterHub.
Я открыл новый блокнот Jupyter, выбрав cx_oracle_env в разделе Блокнот панели запуска.
В Jupyter Notebook я распаковал файл Instantclient-basic-linux.x64-21.1.0.0.0.zip, используя следующую команду:
from shutil import unpack_archive # Decompress ZIP-file to working directory (/home/jovyan/instantclient_21_1/) unpack_archive('instantclient-basic-linux.x64-21.1.0.0.0.zip', '') >>>> Returns no warnings / errors
Проверьте, существует ли путь:
import os.path from os import path path.exists("/home/jovyan/instantclient_21_1") # >>>> Returns True
Установите LD_LIBRARY_PATH:
import os os.environ["LD_LIBRARY_PATH"] = "/home/jovyan/instantclient_21_1" !echo $LD_LIBRARY_PATH # >>>> Returns /home/jovyan/instantclient_21_1
Установите ORACLE_HOME:
os.environ["ORACLE_HOME"] = "/home/jovyan/instantclient_21_1" !echo $ORACLE_HOME # >>>> Returns /home/jovyan/instantclient_21_1
Установите libaio:
!mamba install libaio -y # >>>> Returns no warnings / errors
Импортируйте cx_Oracle:
import cx_Oracle # >>>> Returns no warnings / errors
После вызова init_oracle_client я получаю следующую ошибку:
cx_Oracle.init_oracle_client(lib_dir=r"/home/jovyan/instantclient_21_1")
Что мне не хватает?
PS: К сожалению, у меня нет разрешений sudo в терминале JupyterHub ...