Re: Installing python 2.7.9rc1 caused my frozen apps problems

Ned Deily <[email protected]>
Newsgroups gmane.comp.python.apple
Message-ID <[email protected]>
In article 
<CACgdh2hH5CvyKbbca+xf3+Vkg_hvZBg8mQe7qAiti3UKXWVjHQ@mail.gmail.com>,
 Paul Wiseman <[email protected]> wrote:

> On 1 December 2014 at 23:57, Ned Deily <[email protected]> wrote:
> 
> > [duplicate reply as the first seems to have disappeared]
> >
> > In article
> > <CACgdh2hOqFsDrfDpBLnheEPpoWquoqskF_bGdovGa7+z05EcVQ@mail.gmail.com>,
> >  Paul Wiseman <[email protected]> wrote:
> > > I don't think it's either of those. I think that hashlib.py must have
> > > changed in 2.7.9 from 2.7.8 (no longer has
> > _hashlib.openssl_md_meth_names) so
> > > the built app (running 2.7.8) expected that attribute to be there, but
> > > somehow py2app or my usage of it is causing it to look in the system
> > > libraries over the frozen libraries. Installing 2.7.8 again hides the
> > issue
> > > because whichever hashlib it uses would have the same behaviour because
> > > they'll be identical (both from v2.7.8)
> > > > In any case, a fresh install seems to have solved the problem.
> > > > On Dec 1, 2014, at 7:29 AM, Paul Wiseman <[email protected]> wrote:
> > > > I have a frozen app installed (built on a different machine using
> > python
> > > > 2.7.8 32/ppc)
> > > >
> > > > I Installed python 2.7.9rc1 (32/pcc python.org installer) and I
> > started
> > > > seeing errors from the built app on startup
> > > >
> > > > the error occurred from import hashlib
> > > >
> > > >   File
> > > >
> > "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py"
> > > > ,
> > > > line 138, in <module>
> > > >     _hashlib.openssl_md_meth_names)
> > > > AttributeError: 'module' object has no attribute
> > 'openssl_md_meth_names'
> > > >
> > > > Installing 2.7.8 again on this machine, and the frozen app started
> > working
> > > > again with no other changes.
> > > >
> > > > Is this a problem with my setup or an issue with the freezing process?
> >
> > The whole point of using py2app in normal, non-alias mode is to provide
> > a self-contained, standalone app not dependent on any external
> > Python-provided infrastructure, e.g. py files or extension modules or
> > shared libs so something is wrong here.  The 'openssl_md_meth_names' was
> > added to _hashlib.so for 2.7.9 (along with a lot of other changes to
> > support the backport of upgraded ssl functionality from Python 3) so
> > what appears to be happening here is that something in your app is
> > incorrectly importing hashlib.py from the 2.7.9 installation in
> > /Library/Frameworks along with (correctly) importing _hashlib.so from
> > your py2app-produced app bundle.
> 
> 
> Yea I think you're right- I'm pretty sure that's what it must be
> 
> 
> > I'm no expert on py2app but I did
> > verify that a very simple app that used hashlib and was built with a
> > current py2app and 2.7.8 did, in fact, work correctly when run in the
> > presence of 2.7.9rc1.  So the question is what is going on with your
> > app.  Questions that come to mind: (1) What is the full traceback (e.g.
> > which file causes hashlib to be imported)?  (2) What is the value of
> > sys.path at that point?  (3) What third-party modules are installed in
> > the app and were any installed after using py2app?
> >
> >
> This is the full traceback:
> 
> Traceback (most recent call last):
>   File "/Applications/Utility.app/Contents/Resources/__boot__.py", line
> 316, in <module>
>     _run()
>   File "/Applications/Utility.app/Contents/Resources/__boot__.py", line
> 311, in _run
>     exec(compile(source, path, 'exec'), globals(), globals())
>   File "/Applications/Utility.app/Contents/Resources/context_main.py", line
> 3, in <module>
>     from PythonApp.context.context import main
>   File "PythonApp/context/context.pyc", line 3, in <module>  # from
> PythonApp.redirectstd import redirect
>   File "PythonApp/redirectstd.pyc", line 5, in <module>  # from PythonApp
> import settings
>   File "PythonApp/settings.pyc", line 7, in <module>  # import hashlib
>   File
> "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py",
> line 138, in <module>
>     _hashlib.openssl_md_meth_names)
> AttributeError: 'module' object has no attribute 'openssl_md_meth_names'
> 2014-12-01 23:44:57.204 Utility[72506:4648486] Utility Error
> 
> I printed out sys.path right before the import hashlib,
> ['/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
> '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
> '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
> '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
> '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-
> scriptpackages',
> '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
> '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
> '/Applications/Utility.app/Contents/Resources/lib/python2.7/lib-dynload',
> '/Applications/Utility.app/Contents/Resources/lib/python2.7/site-packages.zip'
> ,
> '/Applications/Utility.app/Contents/Resources/lib/python2.7/site-packages']
> 
> There's no modifications in the code to sys.path or the pythonpath (I do
> have modifications to PYTHONPATH in my .bash_profile- but those aren't
> showing up in the sys.path output here, and I'm pretty sure that shouldn't
> affect it right?)

That sys.path certainly looks wrong.  There shouldn't be any 
/Library/Frameworks paths when running in the app.  Yeah, your shell 
profile shouldn't enter into it when running a launched app.  You could 
also check the values for sys.executable, sys.prefix, and 
sys.exec_prefix.
 
> There's quite a lot of 3rd party modules, non of which will have been
> installed after the app was built. hashlib is imported pretty early, before
> any 3rd party imports if that makes a difference.
> 
> I think I'll see tomorrow if I can't make a small sample app and setup.py
> with py2app which I can reproduce the problem and I'll post it up on here.

Sounds like a good idea.  Of course, make sure you have the latest 
version of py2app and its dependencies, too.  Good luck!

-- 
 Ned Deily,
 [email protected]

_______________________________________________
Pythonmac-SIG maillist  -  [email protected]
https://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.