On 1 December 2014 at 23:57, Ned Deily <n...@acm.org> wrote:

> [duplicate reply as the first seems to have disappeared]
>
> In article
> <cacgdh2hoqfsdrfdpblnheeppowquoqskf_bgdovga7+z05e...@mail.gmail.com>,
>  Paul Wiseman <poal...@gmail.com> 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 <poal...@gmail.com> 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,
>  n...@acm.org
>
> _______________________________________________
> Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
> https://mail.python.org/mailman/listinfo/pythonmac-sig
> unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG
>
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
https://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG

Reply via email to