X

Help Articles are product support tips and information straight from the NV5 Geospatial Technical Support team developed to help you use our products to their fullest potential.



6 Rate this article:
No rating

How to install custom packages into the embedded IDL-Python installation on a system with no internet connection

Overview

Starting with IDL version 9.2, the software includes an embedded Python environment that supports the installation of custom Python packages via the PipInstall method within the PyUtils class. This functionality streamlines integration with Python libraries directly from the IDL interface.

However, this package installation mechanism requires an active internet connection. Systems operating in secure or offline environments will be unable to utilize PipInstall directly, as it depends on online access to Python package repositories.

 

Offline Installation Work-around

To accommodate offline workflows, users may replicate the package installation process on a separate, internet-connected machine and then transfer the configured Python environment to the offline system. This approach mirrors standard practices for managing Python dependencies in air-gapped environments.

NOTICE: This workaround is provided as a courtesy and has not undergone formal validation or support testing. Results may vary depending on system configuration and package dependencies.

 

Prerequisites

To ensure compatibility and minimize errors, both the source (online) and target (offline) machines must meet the following criteria:

  • Identical IDL version installed on both systems
  • Matching operating systems (Windows, Linux, or macOS)
  • Valid IDL licenses on both machines (license transfers may be necessary during the process)

 

Step 1: Prepare the Environment on the Internet-Connected Computer

  1. Reset the Embedded Python Environment: Delete the existing embedded Python folder located in your .idl folder: ~\.idl\idl-python3XX
  2. Install Desired Packages via IDL Console: Launch IDL and use the following commands to install desired packages:
PyUtils.PipInstall, 'beautifulsoup4'
PyUtils.PipInstall, 'zstandard'
…

3. Verify Installation and Import Functionality: Confirm installation succeeds in the IDL console for each and quickly test importing the new modules to be sure they work:

mod1 = Python.Import(‘bs4’)
mod2 = Python.Import(‘zstandard’)
…

4. Archive the Python Environment: Compress the updated folder into an archive file (e.g., ZIP or TAR): ~\.idl\idl-pythonXXX

 

Step 2: Deploy the Environment to the Offline Computer

  1. Transfer the Archive: Move the compressed archive to the offline system using a secure method (e.g., USB drive).
  2. Extract the Environment: Decompress the archive file into the .idl directory:: ~\.idl
  3. Validate Package Availability: Launch IDL and confirm that the packages are accessible via the IDL-Python bridge:
mod1 = Python.Import(‘bs4’)
mod2 = Python.Import(‘zstandard’)
…

 

 

 

 

 

 

Created by BC-US (11-6-2025) Reviewed by XXX

Please login or register to post comments.
Featured

My Licenses Portal - Users Guide

9/24/2025

  Introduction License Administrators (and Distributors) can view license Original... more »

End-of-Life Policy Enforcement for ENVI 5.3 / IDL 8.5 and Earlier Versions

5/6/2024

April 1, 2024 Dear ENVI/IDL Customer,  We are reaching out to notify you of our supported... more »

How to Upgrade licenses to ENVI 6.x / IDL 9.x

12/5/2023

What is the new Upgrade function? Starting with ENVI 6.0 and IDL 9.0, we have implemented an... more »

What to do if the 'License Administrator - License Server' for the Next-Generation License Server does not start?

6/13/2023

Background: With the release of ENVI 5.7 & IDL 8.9 and the corresponding Next-Generation licensing... more »

Next-Generation Licensing FAQ

4/28/2023

  NV5 Geospatial has adopted a new licensing technology for all future releases of our ENVI, IDL... more »

The IDL Virtual Machine

6/6/2013

What is the IDL Virtual Machine? An IDL Virtual Machine is a runtime version of IDL that can... more »