Discussions
Categories
- 385.5K All Categories
- 4.9K Data
- 2.5K Big Data Appliance
- 2.4K Data Science
- 453.4K Databases
- 223.2K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 47 Multilingual Engine
- 606 MySQL Community Space
- 486 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.2K ORDS, SODA & JSON in the Database
- 585 SQLcl
- 4K SQL Developer Data Modeler
- 188K SQL & PL/SQL
- 21.5K SQL Developer
- 46 Data Integration
- 46 GoldenGate
- 298.4K Development
- 4 Application Development
- 20 Developer Projects
- 166 Programming Languages
- 295K Development Tools
- 150 DevOps
- 3.1K QA/Testing
- 646.7K Java
- 37 Java Learning Subscription
- 37.1K Database Connectivity
- 201 Java Community Process
- 108 Java 25
- 22.2K Java APIs
- 138.3K Java Development Tools
- 165.4K Java EE (Java Enterprise Edition)
- 22 Java Essentials
- 176 Java 8 Questions
- 86K Java Programming
- 82 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 208 Java User Groups
- 25 JavaScript - Nashorn
- Programs
- 667 LiveLabs
- 41 Workshops
- 10.3K Software
- 6.7K Berkeley DB Family
- 3.6K JHeadstart
- 6K Other Languages
- 2.3K Chinese
- 207 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 474 Portuguese
Adding Python module to MLE which is used by APEX

Hello Everybody
First of all, I would like to thank @joelkallman-Oracle for this awesome article
I have tested running Python code from SQL Commands of the Early adopting instance. It is amazing!
However, I was wondering how to add Python's modules to MLE engine that would be used by APEX.
Say I have xyx module which is added by:
pip3 install xyz
Regards
Mahmoud
Best Answer
-
Hi Mahmoud
The APEX + MLE hosted preview is all about running JavaScript and Python code snippets in APEX. For deploying JavaScript and Python modules, we recommend to get our latest preview release of MLE (0.3.0): https://www.oracle.com/technetwork/database/multilingual-engine/downloads/index.html
Note that our current support of running third party Python code is very limited (in contrast to third party JavaScript code that all should run fine), but we are working hard on it. Most third party Python modules cannot be used yet and, thus, we do not encourage users to try it out. However, if you really want to give it a try, here is how you can do it. Simply place the third party Python code (e.g., the module "aegon") in a directory "moduledeps" besides your own code (e.g., "myconv.py"). Finally, put everything into a single zip file and deploy it (see https://oracle.github.io/oracle-db-mle/python/). Here is one example that can be run in MLE 0.3.0:
$ mkdir myconv
$ cd myconv
$ mkdir moduledeps
$ pip install --target=./moduledeps aegon
$ cat myconv.py
from aegon import Measurement, Length
def doconv(inch_in: float) -> str:
distance = Measurement(inch_in, Length.inches)
distance.convert_to(Length.meters)
return str(distance)
exports['to_meter'] = doconv
$ zip -r myconv.zip *
Best regards,
Bastian
Answers
-
Hi Mahmoud
The APEX + MLE hosted preview is all about running JavaScript and Python code snippets in APEX. For deploying JavaScript and Python modules, we recommend to get our latest preview release of MLE (0.3.0): https://www.oracle.com/technetwork/database/multilingual-engine/downloads/index.html
Note that our current support of running third party Python code is very limited (in contrast to third party JavaScript code that all should run fine), but we are working hard on it. Most third party Python modules cannot be used yet and, thus, we do not encourage users to try it out. However, if you really want to give it a try, here is how you can do it. Simply place the third party Python code (e.g., the module "aegon") in a directory "moduledeps" besides your own code (e.g., "myconv.py"). Finally, put everything into a single zip file and deploy it (see https://oracle.github.io/oracle-db-mle/python/). Here is one example that can be run in MLE 0.3.0:
$ mkdir myconv
$ cd myconv
$ mkdir moduledeps
$ pip install --target=./moduledeps aegon
$ cat myconv.py
from aegon import Measurement, Length
def doconv(inch_in: float) -> str:
distance = Measurement(inch_in, Length.inches)
distance.convert_to(Length.meters)
return str(distance)
exports['to_meter'] = doconv
$ zip -r myconv.zip *
Best regards,
Bastian
-
Mahmoud_Rabie Cloud Solution Architect | Technical Consultant | Trainer Saudi Arabia, RiyadhMember Posts: 3,216 Bronze Crown
-
Mahmoud_Rabie Cloud Solution Architect | Technical Consultant | Trainer Saudi Arabia, RiyadhMember Posts: 3,216 Bronze Crown
-
Hi Mahmoud,
It will be in some future database version. I'm really unable to provide a specific date or version. It could be Database 20. It could be a version after that.
Joel
-
Mahmoud_Rabie Cloud Solution Architect | Technical Consultant | Trainer Saudi Arabia, RiyadhMember Posts: 3,216 Bronze Crown
Thanks a lot