[Tutor] import failure

Alex Kleider akleider at sonic.net
Fri Feb 22 11:55:52 EST 2019


I'm trying to programmatically manipulate my google contacts using
a library (https://github.com/google/gdata-python-client) which I've
cloned.  The documentation suggests running a test to start with
which I did (OS: Ubuntu 18.4, running in a python2.7 venv 'p2')
with the following rather puzzling results (explanation below):

(p2) alex at one:$ pwd
/home/alex/Proj/G/gdata-python-client
(p2) alex at one:$ ls
build                INSTALL.txt  pydocs             samples             
src
contacts_example.py  Makefile     README.txt         set_python_path.sh  
tests
__init__.py          MANIFEST.in  RELEASE_NOTES.txt  setup.py            
upload-diffs.py
(p2) alex at one:$ ./tests/run_data_tests.py
Traceback (most recent call last):
   File "./tests/run_data_tests.py", line 19, in <module>
     import gdata_tests.auth_test
   File 
"/home/alex/Proj/G/gdata-python-client/tests/gdata_tests/auth_test.py", 
line 24, in <module>
     import gdata.auth
   File "/home/alex/Proj/G/gdata-python-client/src/gdata/auth.py", line 
29, in <module>
     import gdata.oauth.rsa as oauth_rsa
   File "/home/alex/Proj/G/gdata-python-client/src/gdata/oauth/rsa.py", 
line 10, in <module>
     from tlslite.utils import keyfactory
ImportError: No module named tlslite.utils
(p2) alex at one:$ pip install tlslite
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 
2020. Please upgrade your Python as Python 2.7 won't be maintained after 
that date. A future version of pip will drop support for Python 2.7.
Collecting tlslite
   Downloading 
https://files.pythonhosted.org/packages/92/2b/7904cf913d9bf150b3e408a92c9cb5ce0b97a9ec19f998af48bf4c607f0e/tlslite-0.4.9.tar.gz 
(105kB)
     100% |                               | 112kB 174kB/s
     100% |                               | 112kB 174kB/s
Building wheels for collected packages: tlslite
   Building wheel for tlslite (setup.py) ... done
   Stored in directory: 
/home/alex/.cache/pip/wheels/f8/de/72/213ac7112be37bc832e971c092757ae92aa5ae4b433e214ba9
Successfully built tlslite
Installing collected packages: tlslite
Successfully installed tlslite-0.4.9
(p2) alex at one:$ ./tests/run_data_tests.py
Traceback (most recent call last):
   File "./tests/run_data_tests.py", line 19, in <module>
     import gdata_tests.auth_test
   File 
"/home/alex/Proj/G/gdata-python-client/tests/gdata_tests/auth_test.py", 
line 24, in <module>
     import gdata.auth
   File "/home/alex/Proj/G/gdata-python-client/src/gdata/auth.py", line 
29, in <module>
     import gdata.oauth.rsa as oauth_rsa
   File "/home/alex/Proj/G/gdata-python-client/src/gdata/oauth/rsa.py", 
line 10, in <module>
     from tlslite.utils import keyfactory
ImportError: No module named tlslite.utils
(p2) alex at one:$ python
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tlslite
>>> exit()
(p2) alex at one:$ vim src/gdata/oauth/rsa.py
(p2) alex at one:$ cat src/gdata/oauth/rsa.py | tail -n 4
if __name__ == "__main__":
     print("key_factory = " + repr(keyfactory))
(p2) alex at one:$ python src/gdata/oauth/rsa.py
key_factory = <module 'tlslite.utils.keyfactory' from 
'/home/alex/.virtualenvs/p2/local/lib/python2.7/site-packages/tlslite/utils/keyfactory.pyc'>
(p2) alex at one:$ python
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from tlslite.utils import keyfactory
>>> 

Details: The initial run failed because of unavailability of a module.
A little reading led to the discovery that it could be easily installed
using pip but after doing so: Still the same failure.
Running the interpreter proves that the module is now available but the
test still fails.
Adding a bit of code to the bottom of the failing module shows that it
in fact can import the module in question.
Ran the interpreter again just to be sure that the function is available
and indeed it is.
I don't understand how this could be possible.

Any suggestions as to what the problem might be or how to investigate
further would be very much appreciated.

Cheers,
Alex

-- 
Alex Kleider
(sent from my current gizmo)


More information about the Tutor mailing list