3225
How to configure the IDL Python bridge on recent Linux flavor such as Ubuntu 20
Some recent Linux flavors - such as Ubuntu 20- are not shipped with a /usr/bin/python link. They are shipped with a /usr/bin/python3 link instead. However, our current IDL-Python bridge, as of at least IDL 8.8.0, requires a python command to run.
In addition, more recent Linux flavors may have missing libraries required for the IDL-Python bridge, such as pip, numpy or distutils.
How to identify the issue related to the missing “python” command?
When launching the IDL to Python bridge it fails with the below error:
IDL> >>> import sys
% PYTHON::LOAD: is not a supported python version.
% Execution halted at: $MAIN$
If your Python version is supported, this error may be due to the lack of a valid "python" command on your path. Indeed, IDL is looking specifically for a “python” command to initialize the IDL-Python bridge, and not to a “python3” command.
How to fix the error related to the lack of “python” command?
The easiest way to fix this error is to create a symbolic link from python to python3 in /usr/bin:
$ sudo ln -s /usr/bin/python3 /usr/bin/python
Then try again to run bridge from IDL 8.8.
How to identify the issue related to missing distutils library?
When launching the IDL to Python bridge it fails with an error such as:
ModuleNotFoundError: No module named 'distutils.util'
How to fix the error related to missing distutils library?
You will need to install the package including the distutils library:
$ sudo apt update
sudo apt-get install python3-distutils
How to identify the issue related to missing numpy library?
When launching the IDL to Python bridge it fails with an error such as:
% PYTHON::LOAD: numpy is not installed for this python distribution and is required for the IDL-python bridge.
How to fix the error related to missing numpy library?
a. Ubuntu 20.04 does not include pip. First step will then consist in installing pip:
$ sudo apt update
$ sudo apt install python3-pip
b. Then install numpy
$ /usr/bin/python -m pip install numpy
How to test the IDL bridge is fully working?
a. Run the python bridge setup script:
$ sudo python setup.py install
Installing the IDL Python bridge.
Python-to-IDL library location:
/usr/local/harris/idl88/bin/bin.linux.x86_64/pythonidl38.so
IDL-to-Python library location:
/usr/local/harris/idl88/bin/bin.linux.x86_64/idl_python38.so
Creating idl_python.pth file containing the IDL Python bridge paths
running install
running build
running install_data
copying /tmp/idl_python.pth -> /usr/lib/python3/dist-packages
running install_egg_info
Writing /usr/local/lib/python3.8/dist-packages/idl_python-2.0.egg-info
Removing temporary idl_python.pth file
Setup is complete.
b. Run IDL->Python bridge
IDL> >>>import sys
% Loaded DLM: PYTHON38.
IDL> >>>print(sys.version)
3.8.5 (default, Jul 28 2020, 12:59:40)
[GCC 9.3.0]
c. Run Python->IDL bridge
$ python
Python 3.8.5 (default, Jul 28 2020, 12:59:40)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from idlpy import *
IDL 8.8.0 (linux x86_64 m64).
(c) 2020, Harris Geospatial Solutions, Inc.
Licensed for use by: xxxxxxx.
License: MNT-xxxxxx
>>> IDL.sqrt(4)
2.0
-----------------------
written by BC on 12/17/2020 - reviewed by BC (US) on 12/17/2020