{ Abhilash Kumar Bhattaram : Follow on LinkedIn }
series : Python for ARM Linux - Part 1 : Essentials
NOTE : The blog examples is on ARM Linux but almost the same works for x86 , details in blog below.
Getting Started for Python oracledb driver
Get more done from scripting , a leap for DBA's from schell scripts to Python. Its probably one of the best equipped tools for scripting.
Probably not all shell scripts can be moved, but a lot of stuff can be done in different ways, thats's how one should look at it , Will Python sit on my shell and rule it ? Probably not.
However, while both shell scripting and Python can accomplish automation and database interaction, they do so in fundamentally different ways. Shell scripts are lightweight and well-suited for quick tasks, especially in Unix-based environments where direct command-line interaction is key. On the other hand, Python offers greater structure, readability, cross-platform compatibility, and access to extensive libraries—making it more maintainable and scalable for complex workflows. Understanding the pros and cons of each is crucial: shell scripts may excel in system-level operations, but Python brings enhanced error handling, security features (like encrypted credentials), and the ability to build modular, reusable codebases. The choice depends on the task, environment, and long-term maintainability goals.
Lets get started with how to set up our Python for Oracle
Getting Started for Python for Oracle
This is not a Python tutorial but you can understand the flow, there are numerous places to learn python online
One of the pre-requisites and my recommended way to run python is to have our own python environment and not rely on default python installations in root user.
Setting up a Local Pythoon Environment
To start with we need to download the miniconda version of Python , as you can see in my case it is ARM Linux.
You can follow more details for your OS environment here.
[oracle@machine1 py_env]$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
--2025-05-17 11:00:01-- https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
Resolving repo.anaconda.com (repo.anaconda.com)... 2606:4700:83b3:2c97:4afd:5:6810:20f1, 104.16.32.241, 104.16.191.158
Connecting to repo.anaconda.com (repo.anaconda.com)|2606:4700:83b3:2c97:4afd:5:6810:20f1|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 148575443 (142M) [application/octet-stream]
Saving to: ‘Miniconda3-latest-Linux-aarch64.sh’
Miniconda3-latest-Linux-aarch64.sh 100%[===================================================================================================================================================================>] 141.69M 23.5MB/s in 5.6s
2025-05-17 11:00:07 (25.4 MB/s) - ‘Miniconda3-latest-Linux-aarch64.sh’ saved [148575443/148575443]
[oracle@machine1 py_env]$
[oracle@machine1 py_env]$ ls -l
total 145096
-rw-r--r--. 1 oracle oinstall 148575443 May 1 01:44 Miniconda3-latest-Linux-aarch64.sh
Setting up Local Environment for Python
I plan to have my python local environment under /opt/oracle/py_miniconda , this is the base of all my python scripts I plan to script further , so we need to get this right.
Installing the Miniconda downloaded above would be as below
[oracle@machine1 py_env]$ ./Miniconda3-latest-Linux-aarch64.sh
Welcome to Miniconda3 py313_25.3.1-1
In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>>
MINICONDA END USER LICENSE AGREEMENT
Copyright Notice: Miniconda(R) (C) 2015, Anaconda, Inc.
All rights reserved. Miniconda(R) is licensed, not sold.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer;
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution;
3. The name Anaconda, Inc. or Miniconda(R) may not be used to endorse or promote products derived from this software without specific prior written permission from Anaconda, Inc.; and
4. Miniconda(R) may not be used to access or allow third parties to access Anaconda package repositories if such use would circumvent paid licensing requirements or is otherwise restricted by the Anaconda Terms of Service.
DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ANACONDA "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE , AND NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL ANACONDA BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WH
ETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF MINICONDA(R), EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Do you accept the license terms? [yes|no]
>>> yes
Miniconda3 will now be installed into this location:
/home/oracle/miniconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home/oracle/miniconda3] >>> /opt/oracle/py_miniconda
PREFIX=/opt/oracle/py_miniconda
Unpacking payload ...
entry_point.py:256: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
entry_point.py:256: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
Installing base environment...
Downloading and Extracting Packages:
## Package Plan ##
environment location: /opt/oracle/py_miniconda
added / updated specs:
- defaults/linux-aarch64::_libgcc_mutex==0.1=main[md5=b272288d02db5520249ca7870c2287b4]
- defaults/linux-aarch64::_openmp_mutex==5.1=51_gnu[md5=66329dd81c60123e0d7c4c39b7ee7afe]
- defaults/linux-aarch64::anaconda-anon-usage==0.7.0=py313h7d20cce_101[md5=690a2d59076a9b79311ad3c98cb57dde]
- defaults/linux-aarch64::annotated-types==0.6.0=py313hd43f75c_0[md5=c67657365f4aca9df3a9390d82618eaa]
- defaults/linux-aarch64::boltons==24.1.0=py313hd43f75c_0[md5=864bf796d3dae5b2d7e4fab6ffbc14bc]
- defaults/linux-aarch64::brotli-python==1.0.9=py313h419075a_9[md5=8fa8de5f868e7fddd9e27826693ff497]
- defaults/linux-aarch64::bzip2==1.0.8=h998d150_6[md5=f580b2013db742598b2d59875bccf774]
- defaults/linux-aarch64::c-ares==1.19.1=h998d150_0[md5=17e18b0815f8950ed07e936fbef17788]
- defaults/linux-aarch64::ca-certificates==2025.2.25=hd43f75c_0[md5=265553e02ee80946508771a6abceecae]
- defaults/linux-aarch64::certifi==2025.4.26=py313hd43f75c_0[md5=76c15f687db867e7eb821fdf569bb920]
- defaults/linux-aarch64::cffi==1.17.1=py313hcb1262d_1[md5=5310695471ba6b4719ae05623c5894b6]
- defaults/linux-aarch64::conda-anaconda-telemetry==0.1.2=py313hd43f75c_1[md5=6cd15277bf8041fecd31f0ec8bf53603]
- defaults/linux-aarch64::conda-anaconda-tos==0.1.3=py313hd43f75c_0[md5=1fe0cdc01d0638561494f73cd3bc19c5]
- defaults/linux-aarch64::conda-content-trust==0.2.0=py313hd43f75c_1[md5=cbfb01626f47606690d2195223706ce4]
- defaults/linux-aarch64::conda-package-handling==2.4.0=py313hd43f75c_0[md5=2806b16954393af63e9f3fa038b24861]
- defaults/linux-aarch64::conda-package-streaming==0.11.0=py313hd43f75c_0[md5=dbaf80eb75824b7611a08bfc5add90ff]
- defaults/linux-aarch64::conda==25.3.1=py313hd43f75c_0[md5=6404d1bfe1ec4bf597a38d7df8d1632c]
- defaults/linux-aarch64::cpp-expected==1.1.0=hb8fdbf2_0[md5=06c2848c6311674e19391d4b81b3188a]
- defaults/linux-aarch64::cryptography==44.0.1=py313h4f760a9_0[md5=2f1112f92a2ffc8b489b3a2cb1f10601]
- defaults/linux-aarch64::distro==1.9.0=py313hd43f75c_0[md5=77f95d4b0a5bf1b775dda3372544dbeb]
- defaults/linux-aarch64::expat==2.7.1=h419075a_0[md5=4e5b7cdea249a4b761065ea25ce04c72]
- defaults/linux-aarch64::fmt==9.1.0=hb8fdbf2_1[md5=563f42f36ed4ba43844a74427fd5391d]
- defaults/linux-aarch64::frozendict==2.4.2=py313hd43f75c_0[md5=75d4b249740ef6238bd58dc085cd4630]
- defaults/linux-aarch64::icu==73.1=h419075a_0[md5=cb0845107bfb0b019a07516080fd9431]
- defaults/linux-aarch64::idna==3.7=py313hd43f75c_0[md5=54e21a371a17c79cbc0230e1f00603d4]
- defaults/linux-aarch64::jsonpatch==1.33=py313hd43f75c_1[md5=9930fc2e22ba90d25992765ac140be02]
- defaults/linux-aarch64::krb5==1.20.1=h2e2fba8_1[md5=27536cedda98c7b57305647dfed2cd85]
- defaults/linux-aarch64::ld_impl_linux-aarch64==2.40=h48e3ba3_0[md5=bd1648897461f56f278fcbdabef1df1a]
- defaults/linux-aarch64::libarchive==3.7.7=h4086d46_0[md5=239dce9242b18e26c7617ed46095095b]
- defaults/linux-aarch64::libcurl==8.12.1=hd336600_0[md5=0445966d11ce636cac0ffd71ec95c46a]
- defaults/linux-aarch64::libedit==3.1.20230828=h998d150_0[md5=cbe50012247d3078f4fd057cc91b526a]
- defaults/linux-aarch64::libev==4.33=hfd63f10_1[md5=230e8093b929e64244f2c7e181705802]
- defaults/linux-aarch64::libffi==3.4.4=h419075a_1[md5=34c197394030fa553d97fc902585ee9b]
- defaults/linux-aarch64::libgcc-ng==11.2.0=h1234567_1[md5=067214d7ddc39f6922b9e29be83fe8f9]
- defaults/linux-aarch64::libgomp==11.2.0=h1234567_1[md5=e3d856b632d874d38bfad1083d547271]
- defaults/linux-aarch64::libmamba==2.0.5=h78dbd8a_1[md5=55504d30bc3a0ff36c44112c361d0b63]
- defaults/linux-aarch64::libmambapy==2.0.5=py313hb8fdbf2_1[md5=6a8459b0b6b852c754a956e459ba58dc]
- defaults/linux-aarch64::libmpdec==4.0.0=h998d150_0[md5=8bd7f4c495a81af4914c899949e52542]
- defaults/linux-aarch64::libnghttp2==1.57.0=hb788212_0[md5=22c5e58020605770d76b5674c653dd56]
- defaults/linux-aarch64::libsolv==0.7.30=h94b7715_1[md5=990cf2b0f00f90cfe06f73569b701ce6]
- defaults/linux-aarch64::libssh2==1.11.1=hfa2bbb0_0[md5=a88e620d4eafd7f199a0502433e5e0c0]
- defaults/linux-aarch64::libstdcxx-ng==11.2.0=h1234567_1[md5=0230856ae16682fae3cfb828cffd12ec]
- defaults/linux-aarch64::libuuid==1.41.5=h998d150_0[md5=59cd225a7659291aa716c6cdae7e1363]
- defaults/linux-aarch64::libxml2==2.13.8=h6097fa9_0[md5=7185f18f4c576c5b1d7caeafd688e1a6]
- defaults/linux-aarch64::lz4-c==1.9.4=h419075a_1[md5=70c4ab9462183ac4af60852d2a79fbf6]
- defaults/linux-aarch64::markdown-it-py==2.2.0=py313hd43f75c_1[md5=29684ee9d5c94ac2da7d6999c6e37da2]
- defaults/linux-aarch64::mdurl==0.1.0=py313hd43f75c_0[md5=7be385eec2e9355842787cf2dfdc495d]
- defaults/linux-aarch64::menuinst==2.2.0=py313hd43f75c_1[md5=e02481814d5b39989a1e5e1595d9589e]
- defaults/linux-aarch64::ncurses==6.4=h419075a_0[md5=b90c355ce67d7aa60ba320b12a892feb]
- defaults/linux-aarch64::nlohmann_json==3.11.2=h419075a_0[md5=9e9d478b40d0e254cd3b448f92f47e8c]
- defaults/linux-aarch64::openssl==3.0.16=h998d150_0[md5=c979523fd67ef5f6934b43cdd2eed968]
- defaults/linux-aarch64::packaging==24.2=py313hd43f75c_0[md5=1fe892fd600b0879c313217d6e75c47b]
- defaults/linux-aarch64::pcre2==10.42=hcfaa891_1[md5=540dfb9c2d62a06ce53e6ab920aadaf9]
- defaults/linux-aarch64::pip==25.0=py313hd43f75c_0[md5=f5d663e81f50151b6ca4b246951c6241]
- defaults/linux-aarch64::platformdirs==4.3.7=py313hd43f75c_0[md5=ed3be289b6bf2ca863d425bd6e281ce3]
- defaults/linux-aarch64::pluggy==1.5.0=py313hd43f75c_0[md5=8f0aee9da2819a6775d9275c7bb5a136]
- defaults/linux-aarch64::pycosat==0.6.6=py313h998d150_2[md5=574f6176492ab5f26a379307c7377a30]
- defaults/linux-aarch64::pydantic-core==2.27.1=py313h657ad5b_0[md5=b484195d78de6c25a6cf286e5eacaf67]
- defaults/linux-aarch64::pydantic==2.10.3=py313hd43f75c_0[md5=f4660440c52e70451d809410c02f4ec2]
- defaults/linux-aarch64::pygments==2.19.1=py313hd43f75c_0[md5=03e8a86630d438548eed9c49b0516a0b]
- defaults/linux-aarch64::pysocks==1.7.1=py313hd43f75c_0[md5=781731092a2ac452348dfd47ade1e237]
- defaults/linux-aarch64::python==3.13.2=hc5ec5e8_100_cp313[md5=b56db33cacbc81e476370c0db981c560]
- defaults/linux-aarch64::python_abi==3.13=0_cp313[md5=1ca3f5ae7ba5e25a821ce8b4d16010fb]
- defaults/linux-aarch64::readline==8.2=h998d150_0[md5=d4048b81dce5581d2bfe6b29e4c54cde]
- defaults/linux-aarch64::reproc-cpp==14.2.4=h419075a_2[md5=d4a07ee63f2fded787246f3eb2d2157c]
- defaults/linux-aarch64::reproc==14.2.4=h419075a_2[md5=50bf464f48566d71a2778149c54d9fb1]
- defaults/linux-aarch64::requests==2.32.3=py313hd43f75c_1[md5=e228ec237df329c689c961ba9a8bfe17]
- defaults/linux-aarch64::rich==13.9.4=py313hd43f75c_0[md5=9e1e9aa5aca94b80b115094e7510c628]
- defaults/linux-aarch64::ruamel.yaml.clib==0.2.12=py313h998d150_0[md5=0c368b7853d3c5af68cf2659e5e90ade]
- defaults/linux-aarch64::ruamel.yaml==0.18.10=py313h998d150_0[md5=350f147cb9420ffa173b28c99ef27a43]
- defaults/linux-aarch64::setuptools==78.1.1=py313hd43f75c_0[md5=9e2293d90ff03fcbf77b73f446d659cf]
- defaults/linux-aarch64::simdjson==3.10.1=hb8fdbf2_0[md5=0cefa22396b339a17597faad550d9582]
- defaults/linux-aarch64::spdlog==1.11.0=hb8fdbf2_0[md5=8eac4ac640ff0f314308603b26ebf1ad]
- defaults/linux-aarch64::sqlite==3.45.3=h998d150_0[md5=a760da65a886c78c80a7d5a04850204a]
- defaults/linux-aarch64::tk==8.6.14=h987d8db_0[md5=a8b37241af55b4f6fe13cfbe995b7243]
- defaults/linux-aarch64::tqdm==4.67.1=py313had16b7f_0[md5=17af5784f63a3c6e136b4e173bde276c]
- defaults/linux-aarch64::truststore==0.10.0=py313hd43f75c_0[md5=015c81183b1e8577bf44083759d27350]
- defaults/linux-aarch64::typing-extensions==4.12.2=py313hd43f75c_0[md5=4cf2bd7d8853f57ce1f41aa812c12ce2]
- defaults/linux-aarch64::typing_extensions==4.12.2=py313hd43f75c_0[md5=08d9cc1aeb7bf56c174a6e8239fee6b4]
- defaults/linux-aarch64::urllib3==2.3.0=py313hd43f75c_0[md5=608d686e3f27db71ad1e77d2cde6c68c]
- defaults/linux-aarch64::wheel==0.45.1=py313hd43f75c_0[md5=22ae5c29bea42f20aa14b036c35c3e2d]
- defaults/linux-aarch64::xz==5.6.4=h998d150_1[md5=f24eba0df128871df1e71b7bb2df9868]
- defaults/linux-aarch64::yaml-cpp==0.8.0=h419075a_1[md5=51a2369fb0d068241603303f704835db]
- defaults/linux-aarch64::zlib==1.2.13=h998d150_1[md5=84a6ab827186041b20714003e93bb6f6]
- defaults/linux-aarch64::zstandard==0.23.0=py313hc476304_1[md5=522937fc2bbf781292dbf9b64fcaa6c6]
- defaults/linux-aarch64::zstd==1.5.6=h6a09583_0[md5=00680255e8afd0104fab157da58b8f35]
- defaults/noarch::archspec==0.2.3=pyhd3eb1b0_0[md5=13d01ee2d343d8539bb47055a6c0b5b2]
- defaults/noarch::charset-normalizer==3.3.2=pyhd3eb1b0_0[md5=c6fea3691e85cf7f568b0618ec29fc4f]
- defaults/noarch::conda-libmamba-solver==25.4.0=pyhd3eb1b0_0[md5=77ff27567894c7ea3eb908489e5d3e5c]
- defaults/noarch::jsonpointer==2.1=pyhd3eb1b0_0[md5=298ff809e733cb04366e4e629c65aa8d]
- defaults/noarch::pybind11-abi==5=hd3eb1b0_0[md5=7f0df6639fdf60ccd3045ee6faedd32f]
- defaults/noarch::pycparser==2.21=pyhd3eb1b0_0[md5=135a72ff2a31150a3a3ff0b1edd41ca9]
- defaults/noarch::tzdata==2025a=h04d1e81_0[md5=885caf42f821b98b3321dc4108511a3d]
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-aarch64::_libgcc_mutex-0.1-main
_openmp_mutex pkgs/main/linux-aarch64::_openmp_mutex-5.1-51_gnu
anaconda-anon-usa~ pkgs/main/linux-aarch64::anaconda-anon-usage-0.7.0-py313h7d20cce_101
annotated-types pkgs/main/linux-aarch64::annotated-types-0.6.0-py313hd43f75c_0
archspec pkgs/main/noarch::archspec-0.2.3-pyhd3eb1b0_0
boltons pkgs/main/linux-aarch64::boltons-24.1.0-py313hd43f75c_0
brotli-python pkgs/main/linux-aarch64::brotli-python-1.0.9-py313h419075a_9
bzip2 pkgs/main/linux-aarch64::bzip2-1.0.8-h998d150_6
c-ares pkgs/main/linux-aarch64::c-ares-1.19.1-h998d150_0
ca-certificates pkgs/main/linux-aarch64::ca-certificates-2025.2.25-hd43f75c_0
certifi pkgs/main/linux-aarch64::certifi-2025.4.26-py313hd43f75c_0
cffi pkgs/main/linux-aarch64::cffi-1.17.1-py313hcb1262d_1
charset-normalizer pkgs/main/noarch::charset-normalizer-3.3.2-pyhd3eb1b0_0
conda pkgs/main/linux-aarch64::conda-25.3.1-py313hd43f75c_0
conda-anaconda-te~ pkgs/main/linux-aarch64::conda-anaconda-telemetry-0.1.2-py313hd43f75c_1
conda-anaconda-tos pkgs/main/linux-aarch64::conda-anaconda-tos-0.1.3-py313hd43f75c_0
conda-content-tru~ pkgs/main/linux-aarch64::conda-content-trust-0.2.0-py313hd43f75c_1
conda-libmamba-so~ pkgs/main/noarch::conda-libmamba-solver-25.4.0-pyhd3eb1b0_0
conda-package-han~ pkgs/main/linux-aarch64::conda-package-handling-2.4.0-py313hd43f75c_0
conda-package-str~ pkgs/main/linux-aarch64::conda-package-streaming-0.11.0-py313hd43f75c_0
cpp-expected pkgs/main/linux-aarch64::cpp-expected-1.1.0-hb8fdbf2_0
cryptography pkgs/main/linux-aarch64::cryptography-44.0.1-py313h4f760a9_0
distro pkgs/main/linux-aarch64::distro-1.9.0-py313hd43f75c_0
expat pkgs/main/linux-aarch64::expat-2.7.1-h419075a_0
fmt pkgs/main/linux-aarch64::fmt-9.1.0-hb8fdbf2_1
frozendict pkgs/main/linux-aarch64::frozendict-2.4.2-py313hd43f75c_0
icu pkgs/main/linux-aarch64::icu-73.1-h419075a_0
idna pkgs/main/linux-aarch64::idna-3.7-py313hd43f75c_0
jsonpatch pkgs/main/linux-aarch64::jsonpatch-1.33-py313hd43f75c_1
jsonpointer pkgs/main/noarch::jsonpointer-2.1-pyhd3eb1b0_0
krb5 pkgs/main/linux-aarch64::krb5-1.20.1-h2e2fba8_1
ld_impl_linux-aar~ pkgs/main/linux-aarch64::ld_impl_linux-aarch64-2.40-h48e3ba3_0
libarchive pkgs/main/linux-aarch64::libarchive-3.7.7-h4086d46_0
libcurl pkgs/main/linux-aarch64::libcurl-8.12.1-hd336600_0
libedit pkgs/main/linux-aarch64::libedit-3.1.20230828-h998d150_0
libev pkgs/main/linux-aarch64::libev-4.33-hfd63f10_1
libffi pkgs/main/linux-aarch64::libffi-3.4.4-h419075a_1
libgcc-ng pkgs/main/linux-aarch64::libgcc-ng-11.2.0-h1234567_1
libgomp pkgs/main/linux-aarch64::libgomp-11.2.0-h1234567_1
libmamba pkgs/main/linux-aarch64::libmamba-2.0.5-h78dbd8a_1
libmambapy pkgs/main/linux-aarch64::libmambapy-2.0.5-py313hb8fdbf2_1
libmpdec pkgs/main/linux-aarch64::libmpdec-4.0.0-h998d150_0
libnghttp2 pkgs/main/linux-aarch64::libnghttp2-1.57.0-hb788212_0
libsolv pkgs/main/linux-aarch64::libsolv-0.7.30-h94b7715_1
libssh2 pkgs/main/linux-aarch64::libssh2-1.11.1-hfa2bbb0_0
libstdcxx-ng pkgs/main/linux-aarch64::libstdcxx-ng-11.2.0-h1234567_1
libuuid pkgs/main/linux-aarch64::libuuid-1.41.5-h998d150_0
libxml2 pkgs/main/linux-aarch64::libxml2-2.13.8-h6097fa9_0
lz4-c pkgs/main/linux-aarch64::lz4-c-1.9.4-h419075a_1
markdown-it-py pkgs/main/linux-aarch64::markdown-it-py-2.2.0-py313hd43f75c_1
mdurl pkgs/main/linux-aarch64::mdurl-0.1.0-py313hd43f75c_0
menuinst pkgs/main/linux-aarch64::menuinst-2.2.0-py313hd43f75c_1
ncurses pkgs/main/linux-aarch64::ncurses-6.4-h419075a_0
nlohmann_json pkgs/main/linux-aarch64::nlohmann_json-3.11.2-h419075a_0
openssl pkgs/main/linux-aarch64::openssl-3.0.16-h998d150_0
packaging pkgs/main/linux-aarch64::packaging-24.2-py313hd43f75c_0
pcre2 pkgs/main/linux-aarch64::pcre2-10.42-hcfaa891_1
pip pkgs/main/linux-aarch64::pip-25.0-py313hd43f75c_0
platformdirs pkgs/main/linux-aarch64::platformdirs-4.3.7-py313hd43f75c_0
pluggy pkgs/main/linux-aarch64::pluggy-1.5.0-py313hd43f75c_0
pybind11-abi pkgs/main/noarch::pybind11-abi-5-hd3eb1b0_0
pycosat pkgs/main/linux-aarch64::pycosat-0.6.6-py313h998d150_2
pycparser pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0
pydantic pkgs/main/linux-aarch64::pydantic-2.10.3-py313hd43f75c_0
pydantic-core pkgs/main/linux-aarch64::pydantic-core-2.27.1-py313h657ad5b_0
pygments pkgs/main/linux-aarch64::pygments-2.19.1-py313hd43f75c_0
pysocks pkgs/main/linux-aarch64::pysocks-1.7.1-py313hd43f75c_0
python pkgs/main/linux-aarch64::python-3.13.2-hc5ec5e8_100_cp313
python_abi pkgs/main/linux-aarch64::python_abi-3.13-0_cp313
readline pkgs/main/linux-aarch64::readline-8.2-h998d150_0
reproc pkgs/main/linux-aarch64::reproc-14.2.4-h419075a_2
reproc-cpp pkgs/main/linux-aarch64::reproc-cpp-14.2.4-h419075a_2
requests pkgs/main/linux-aarch64::requests-2.32.3-py313hd43f75c_1
rich pkgs/main/linux-aarch64::rich-13.9.4-py313hd43f75c_0
ruamel.yaml pkgs/main/linux-aarch64::ruamel.yaml-0.18.10-py313h998d150_0
ruamel.yaml.clib pkgs/main/linux-aarch64::ruamel.yaml.clib-0.2.12-py313h998d150_0
setuptools pkgs/main/linux-aarch64::setuptools-78.1.1-py313hd43f75c_0
simdjson pkgs/main/linux-aarch64::simdjson-3.10.1-hb8fdbf2_0
spdlog pkgs/main/linux-aarch64::spdlog-1.11.0-hb8fdbf2_0
sqlite pkgs/main/linux-aarch64::sqlite-3.45.3-h998d150_0
tk pkgs/main/linux-aarch64::tk-8.6.14-h987d8db_0
tqdm pkgs/main/linux-aarch64::tqdm-4.67.1-py313had16b7f_0
truststore pkgs/main/linux-aarch64::truststore-0.10.0-py313hd43f75c_0
typing-extensions pkgs/main/linux-aarch64::typing-extensions-4.12.2-py313hd43f75c_0
typing_extensions pkgs/main/linux-aarch64::typing_extensions-4.12.2-py313hd43f75c_0
tzdata pkgs/main/noarch::tzdata-2025a-h04d1e81_0
urllib3 pkgs/main/linux-aarch64::urllib3-2.3.0-py313hd43f75c_0
wheel pkgs/main/linux-aarch64::wheel-0.45.1-py313hd43f75c_0
xz pkgs/main/linux-aarch64::xz-5.6.4-h998d150_1
yaml-cpp pkgs/main/linux-aarch64::yaml-cpp-0.8.0-h419075a_1
zlib pkgs/main/linux-aarch64::zlib-1.2.13-h998d150_1
zstandard pkgs/main/linux-aarch64::zstandard-0.23.0-py313hc476304_1
zstd pkgs/main/linux-aarch64::zstd-1.5.6-h6a09583_0
Downloading and Extracting Packages:
Preparing transaction: done
Executing transaction: done
entry_point.py:256: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
installation finished.
Do you wish to update your shell profile to automatically initialize conda?
This will activate conda on startup and change the command prompt when activated.
If you'd prefer that conda's base environment not be activated on startup,
run the following command when conda is activated:
conda config --set auto_activate_base false
You can undo this by running `conda init --reverse $SHELL`? [yes|no]
[no] >>> yes
no change /opt/oracle/py_miniconda/condabin/conda
no change /opt/oracle/py_miniconda/bin/conda
no change /opt/oracle/py_miniconda/bin/conda-env
no change /opt/oracle/py_miniconda/bin/activate
no change /opt/oracle/py_miniconda/bin/deactivate
no change /opt/oracle/py_miniconda/etc/profile.d/conda.sh
no change /opt/oracle/py_miniconda/etc/fish/conf.d/conda.fish
no change /opt/oracle/py_miniconda/shell/condabin/Conda.psm1
no change /opt/oracle/py_miniconda/shell/condabin/conda-hook.ps1
no change /opt/oracle/py_miniconda/lib/python3.13/site-packages/xontrib/conda.xsh
no change /opt/oracle/py_miniconda/etc/profile.d/conda.csh
modified /home/oracle/.bashrc
==> For changes to take effect, close and re-open your current shell. <==
Thank you for installing Miniconda3!
[oracle@machine1 py_env]$
Verifying Python Installation [ root vs Local ]
The one below is the root default , I prefer not to touch it
[oracle@machine1 py_env]$ /usr/bin/python3 --version
Python 3.6.8 <<<<<<<<<<<---- This is the root python
The one below is the local environment this is where we will work as I need my Python scripts to be transportable and not dependant on root.
base) [oracle@machine1 ~]$ conda list env
# packages in environment at /opt/oracle/py_miniconda:
#
# Name Version Build Channel
(base) [oracle@machine1 ~]$ which python
/opt/oracle/py_miniconda/bin/python
(base) [oracle@machine1 ~]$ python --version
Python 3.13.2
(base) [oracle@machine1 ~]$
Activating the installed conda environment , for now I will use the default base conda.
(base) [oracle@machine1 ~]$ which conda
conda ()
{
\local cmd="${1-__missing__}";
case "$cmd" in
activate | deactivate)
__conda_activate "$@"
;;
install | update | upgrade | remove | uninstall)
__conda_exe "$@" || \return;
__conda_activate reactivate
;;
*)
__conda_exe "$@"
;;
esac
}
(base) [oracle@machine1 ~]$ conda env list
# conda environments:
#
base * /opt/oracle/py_miniconda
(base) [oracle@machine1 ~]$ conda activate base
(base) [oracle@machine1 ~]$ which python
/opt/oracle/py_miniconda/bin/python
(base) [oracle@machine1 ~]$ python --version
Python 3.13.2
(base) [oracle@machine1 ~]$
Installing Oracle related modules
I would be using the following modules oracledb & tabulate , these two are sufficient for me to set my python environment for scripting.
(base) [oracle@machine1 ~]$ pip install oracledb
Collecting oracledb
Downloading oracledb-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl.metadata (5.4 kB)
Requirement already satisfied: cryptography>=3.2.1 in /opt/oracle/py_miniconda/lib/python3.13/site-packages (from oracledb) (44.0.1)
Requirement already satisfied: cffi>=1.12 in /opt/oracle/py_miniconda/lib/python3.13/site-packages (from cryptography>=3.2.1->oracledb) (1.17.1)
Requirement already satisfied: pycparser in /opt/oracle/py_miniconda/lib/python3.13/site-packages (from cffi>=1.12->cryptography>=3.2.1->oracledb) (2.21)
Downloading oracledb-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl (2.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3/2.3 MB 23.5 MB/s eta 0:00:00
Installing collected packages: oracledb
Successfully installed oracledb-3.1.1
(base) [oracle@machine1 ~]$
More in my next post on Python for Oracle
Top comments (0)