Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

PyDL4J - Java dependency management for Python applications

PyDL4J is a lightweight package manager for the DL4J ecosystem whick allows you to focus on building Python applications on top of pyjnius without worrying about the details. You can use PyDL4J for the following tasks:

  • Automatically manage JARs for your Python projects, such as jumpy or pydatavec.
  • Configure your Python DL4J environment through the PyDL4J command line interface.
  • use PyDL4J as a replacement for Maven for basic tasks, from Python.

[Build Status](https: // % 2Fpydl4j/activity) [![License]( % 202.0-blue.svg)](https: // [PyPI version](https: //

![PyDL4J](https: //


PyDL4J is on PyPI, so you can install it with pip:

pip install pydl4j

Alternatively, you can build the project locally as follows:

git clone https: //
cd pydl4j
python install

As regular user, this will likely be enough for your needs. In fact, most of the time you will not interact with PyDL4J directly at all. All other Python projects maintained by Skymind use PyDL4J under the hood and will install this dependency for you.

PyDL4J command line interface (CLI)

Installing PyDL4J exposes a command line tool called pydl4j. You can use this tool to configure your PyDL4J environment. If you don't use the CLI, a default configuration that will be used instead.

**Note: ** If you intend to use the CLI, make sure to have[docker installed](https: // on your machine.

To initialize a new PyDL4j configuration, type

pydl4j init

██████╗ ██╗   ██╗██████╗ ██╗██╗  ██╗     ██╗
██╔══██╗╚██╗ ██╔╝██╔══██╗██║██║  ██║     ██║
██████╔╝ ╚████╔╝ ██║  ██║██║███████║     ██║
██╔═══╝   ╚██╔╝  ██║  ██║██║╚════██║██   ██║
██║        ██║   ██████╔╝███████╗██║╚█████╔╝
╚═╝        ╚═╝   ╚═════╝ ╚══════╝╚═╝ ╚════╝

pydl4j is a system to manage your DL4J dependencies from Python!

Which DL4J version do you want to use for your Python projects? (default '1.0.0-beta2'):

Follow the instructions provided by the CLI. At the end of this process you'll see a JSON object carrying your configuration.

This is your current settings file config.json:

    "dl4j_core": true,
    "nd4j_backend": "cpu",
    "spark_version": "2",
    "datavec": false,
    "spark": true,
    "scala_version": "2.11",
    "dl4j_version": "1.0.0-beta2"

Does this look good? (default 'y')[y/n]:

If not configured otherwise, this configuration file will be stored at ~/.deeplearning4j/pydl4j/config.json. This configuration file is a lightweight version for Python users to avoid the cognitive load of the widely used Project Object Model(POM) widely used in Java. PyDL4J will translate your configuration into the right format internally to provide you with the tools you need.

Finally, to install the Java dependencies configured in your config.json you use the following command:

pydl4j install

This tool will install all necessary JARs into ~/.deeplearning4j/pydl4j for you, by running mvn in a docker container, and setting your classpath so that your pyjnius Python applications can access them.



import pydl4j
import jnius_config
from pydl4j import mvn


# Fetch latest version of datavec.datavec-api from Maven central
pydl4j.mvn_install(group='datavec', artifact='datavec-api')

# Or fetch a specific version:
pydl4j.mvn_install(group='datavec', artifact='datavec-api',


List all artifacts in a group



['datavec-api', 'datavec-arrow', 'datavec-camel', 'datavec-cli', 'datavec-data', 'datavec-data-audio', 'datavec-data-codec', 'datavec-d
 ata-image', 'datavec-data-nlp', 'datavec-dataframe', 'datavec-excel', 'datavec-geo', 'datavec-hadoop', 'datavec-jdbc', 'datavec-local',
 'datavec-nd4j-common', 'datavec-parent', 'datavec-perf', 'datavec-spark-inference-client', 'datavec-spark-inference-model', 'datavec-s
 park-inference-parent', 'datavec-spark-inference-server_2.10', 'datavec-spark-inference-server_2.11', 'datavec-spark_2.10', 'datavec-sp

List all versions of an artifact

mvn.get_versions(group_id, artifact_id)


mvn.get_versions('datavec', 'datavec-api')
['0.4.0', '0.5.0', '0.6.0', '0.7.0', '0.7.1', '0.7.2', '0.8.0',
    '0.9.0', '0.9.1', '1.0.0-alpha', '1.0.0-beta', '1.0.0-beta2']

Get latest version of an artifact

mvn.get_latest_version(group_id, artifact_id)


mvn.get_latest_version('datavec', 'datavec-api')

List all installed jars


Uninstall a jar

# Find jar name from pydl4j.get_jars()

Uninstall all jars:

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.