Re: Installing python 2.7.9rc1 caused my frozen apps problems

Paul Wiseman <[email protected]>
Newsgroups gmane.comp.python.apple
Message-ID <CACgdh2hH5CvyKbbca+xf3+Vkg_hvZBg8mQe7qAiti3UKXWVjHQ@mail.gmail.com>
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?)

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.


> --
>  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
>

_______________________________________________
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.