|
From: Aaron Bartell <aaronbartell@xxxxxxxxx>because I
To: IBMi Open Source Roundtable <opensource@xxxxxxxxxxxx>
Date: 06/20/2016 03:48 PM
Subject: Re: [IBMiOSS] Error installing pandas
Sent by: "OpenSource" <opensource-bounces@xxxxxxxxxxxx>
I found the reason for the HTTPSHandler error and am posting here
*believe* it effects everyone and not just Litmis Spaces. I ran theone
following on two different systems, one that is up to date on PTFs and
that isn't:I
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
missed.xargs
---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
File
"/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
pip/__init__.py",
line 10, in <module>
from pip.util import get_installed_distributions, get_prog
File
"/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
pip/util.py",
line 18, in <module>
from pip._vendor.distlib import version
File
"/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
pip/_vendor/distlib/version.py",
line 14, in <module>
from .compat import string_types
File
"/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
pip/_vendor/distlib/compat.py",
line 66, in <module>
from urllib.request import (urlopen, urlretrieve, Request,
url2pathname,
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 |
grep 'class HTTPSHandler*'REPL:
/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
pip/_vendor/distlib/util.py:class
HTTPSHandler(BaseHTTPSHandler):
grep: can't open
/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
setuptools/__pycache__/script
grep: can't open template
grep: can't open (dev).cpython-34.pyc
grep: can't open
/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
setuptools/__pycache__/script
grep: can't open template.cpython-34.pyc
grep: can't open
/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
setuptools/command/launcher
grep: can't open manifest.xml
grep: can't open
/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
setuptools/script
grep: can't open template
grep: can't open (dev).py
grep: can't open
/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
setuptools/script
grep: can't open template.py
/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/urllib/request.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:
http://stackoverflow.com/questions/67631/how-to-import-a-module-
given-the-full-path
That SO link gave me enough to put together the following in a Python
line
% 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
"/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/urllib/foo = SourceFileLoader("module.name",
request.py").load_module()
"/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/foo = SourceFileLoader("module.name",
pip/_vendor/distlib/util.py").load_module()
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
_call_with_frames_removed
File
"/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages/
pip/_vendor/distlib/util.py",
line 18, in <module>
import ssl
File "/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/ssl.py",
97, in <module>beginning
import _ssl # if we can't import it, let the error
propagate
ImportError: Could not load module
/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/lib-dynload/_ssl.so.
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
/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/lib-dynload/_ssl.so.
Dependent module
/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/lib-dynload/_ssl.so
could not be loaded.
This lead me to search for libssl.a, which takes us back to the
of this thread.for
Aaron Bartell
litmis.com - Services for open source on IBM i
On Mon, Jun 20, 2016 at 9:27 PM, Aaron Bartell <aaronbartell@xxxxxxxxx>
wrote:
Excellent feedback, John. To date Litmis Spaces has been used mostly
sameNode.js and RubyOnRails. Python not so much. Today we follow the
onedirectory structure as IBM.
Concerning multiple versions; developers will want easy switching from
lurkingversion 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
<gallium.arsenide@xxxxxxxxx>(this is a Python REPL session)...
import site
site.getsitepackages()>>>
['/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/python3.4/site-packages',
'/QOpenSys/QIBM/ProdData/OPS/Python3.4/lib/site-python']
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
setuptools-2.1.dist-info
Aaron Bartell
litmis.com - Services for open source on IBM i
On Mon, Jun 20, 2016 at 9:00 PM, John Yeung
<aaronbartell@xxxxxxxxx>wrote:
On Mon, Jun 20, 2016 at 1:53 PM, Aaron Bartell
command towrote:
*>(A huge step would be to install ibm_db and itoolkit.)*
Both should be installed on Litmis Spaces. Run the following
issee: ls -all /QOpenSys/QIBM/ProdData/OPS/Python-pkgs
I think you meant either -al or -alF, rather than -all (each letter
Butits 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.
theI had no idea that was where they were until you told me. Anyone
familiar with Python will be looking for a directory called
site-packages[1].
I guess for now the simplest way to import them is to manually add
thenecessary directory to the search path from within Python:
import sys
sys.path.append('/QOpenSys/QIBM/ProdData/OPS/Python-pkgs')
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
site.getsitepackages()
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 ofadopting
open source on IBM i**. The key is ~documenting~ our progress so
etc).next
person doesn't have to go through the same hoops. Documenting canhappen
in many locations (stackoverflow.com, github gists, blogs, wikis,
--Also, feel free to make a new Python page at the following link todocument
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 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.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 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].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.