I found the reason for the HTTPSHandler error and am posting here because I
*believe* it effects everyone and not just Litmis Spaces. I ran the
following on two different systems, one that is up to date on PTFs and one
that isn't:

find /QOpenSys/QIBM/ProdData/SC1 -name libssl.a

The one that is more up to date does NOT have
/QOpenSys/QIBM/ProdData/SC1/OpenSSL/lib/libssl.a So now I will comb
through the updates I've applied to see if there are some openssl notes I

---Site Note---
I am not a Python expert but I thought others could learn from how I
pursued finding the issue. The error happens when I try to install a
simple Python package...

% pip install appier

Traceback (most recent call last):

File "/QOpenSys/usr/bin/pip", line 7, in <module>

from pip import main

line 10, in <module>
from pip.util import get_installed_distributions, get_prog

line 18, in <module>
from pip._vendor.distlib import version

line 14, in <module>
from .compat import string_types
line 66, in <module>
from urllib.request import (urlopen, urlretrieve, Request,

ImportError: cannot import name 'HTTPSHandler'

Not knowing where HTTPSHandler existed I did a 'find':

% find /QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4 -type f | xargs
grep 'class HTTPSHandler*'
grep: can't open
grep: can't open template
grep: can't open (dev).cpython-34.pyc
grep: can't open
grep: can't open template.cpython-34.pyc
grep: can't open
grep: can't open manifest.xml
grep: can't open
grep: can't open template
grep: can't open (dev).py
grep: can't open
grep: can't open template.py
class HTTPSHandler(AbstractHTTPHandler):

At this point I have two files with HTTPSHandler declared as a class. I
then did a google search for how to import a fully qualified path so I
could manually do an import in a Python REPL to further narrow down the
error. Here is what I found:

That SO link gave me enough to put together the following in a Python REPL:

% python

Python 3.4.2 (default, Jun 12 2015, 19:07:14) [C] on aix6

Type "help", "copyright", "credits" or "license" for more information.

from importlib.machinery import SourceFileLoader

foo = SourceFileLoader("module.name",

foo = SourceFileLoader("module.name",

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

File "<frozen importlib._bootstrap>", line 539, in _check_name_wrapper

File "<frozen importlib._bootstrap>", line 1614, in load_module

File "<frozen importlib._bootstrap>", line 593, in _load_module_shim

File "<frozen importlib._bootstrap>", line 1153, in exec

File "<frozen importlib._bootstrap>", line 1129, in _exec

File "<frozen importlib._bootstrap>", line 1471, in exec_module

File "<frozen importlib._bootstrap>", line 321, in

line 18, in <module>
import ssl

File "/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/ssl.py", line
97, in <module>

import _ssl # if we can't import it, let the error

ImportError: Could not load module

Dependent module libssl.a(libssl.so.1) could not be loaded.

Could not load module libssl.a(libssl.so.1).

System error: No such file or directory

Could not load module

Dependent module
could not be loaded.

This lead me to search for libssl.a, which takes us back to the beginning
of this thread.

Aaron Bartell
litmis.com - Services for open source on IBM i

On Mon, Jun 20, 2016 at 9:27 PM, Aaron Bartell <aaronbartell@xxxxxxxxx>

Excellent feedback, John. To date Litmis Spaces has been used mostly for
Node.js and RubyOnRails. Python not so much. Today we follow the same
directory structure as IBM.

Concerning multiple versions; developers will want easy switching from one
version of language to another. And then in production there should
(hopefully) be only one. I accomplish the multiple version in Node.js
using a custom shell script and run it as follows:

% . node_litmis.sh node-0.12.9

Btw, here's the result of the site-package code for those that are lurking
(this is a Python REPL session)...
import site



And the contents of that directory...

% ls /QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages

README easy_install.py pkg_resources.py

__pycache__ pip setuptools

_markerlib pip-1.5.6.dist-info

Aaron Bartell
litmis.com - Services for open source on IBM i

On Mon, Jun 20, 2016 at 9:00 PM, John Yeung <gallium.arsenide@xxxxxxxxx>

On Mon, Jun 20, 2016 at 1:53 PM, Aaron Bartell <aaronbartell@xxxxxxxxx>
*>(A huge step would be to install ibm_db and itoolkit.)*

Both should be installed on Litmis Spaces. Run the following command to
see: ls -all /QOpenSys/QIBM/ProdData/OPS/Python-pkgs

I think you meant either -al or -alF, rather than -all (each letter is
its own switch; there's no advantage to repeating a switch).

I was expecting those packages to be installed in Litmis Spaces
already, and indeed they do show up in the directory you've shown. But
I had no idea that was where they were until you told me. Anyone
familiar with Python will be looking for a directory called

I guess for now the simplest way to import them is to manually add the
necessary directory to the search path from within Python:

import sys
import ibm_db

But really, this is something that should be fixed.

[1]Python comes with a module called site. It has functions that
affect how the interpreter searches for packages to import. You can
see where Python is expecting to find installed packages as follows
(from the Python prompt):

import site

If those directories don't exist, they don't make it into sys.path.

I think something probably has to be done about the directory
structure anyway, because you absolutely have to have different
site-packages for different versions of Python. Sure, a Litmis space
can probably be configured to only have one version of Python, but
that seems like an artificial limitation.

Also, we can expect some extra effort in these initial stages of
open source on IBM i**. The key is ~documenting~ our progress so the
person doesn't have to go through the same hoops. Documenting can
in many locations (stackoverflow.com, github gists, blogs, wikis, etc).
Also, feel free to make a new Python page at the following link to
resolutions: https://bitbucket.org/ibmi/opensource/wiki/Home

Totally agree. I will see what I can do, though I can't promise
anything as my time is even more limited than usual.

John Y.
This is the IBMi Open Source Roundtable (OpenSource) mailing list
To post a message email: OpenSource@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/opensource
or email: OpenSource-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/opensource.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2020 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].