[Pythonmac-SIG] Py2App 0.1.7
Chris Barker
Chris.Barker at noaa.gov
Thu Dec 30 23:25:16 CET 2004
Hi all (but particularly Bob)
I just installed Py2App with the installer, but when I tried to use it I
got:
Traceback (most recent call last):
File "setup.py", line 21, in ?
import py2app
File "/purelib/py2app/py2app/__init__.py", line 33, in ?
File "/purelib/py2app/py2app/install.py", line 15, in ?
File "/purelib/py2app/py2app/command/__init__.py", line 1, in ?
File "/purelib/py2app/py2app/build_app.py", line 20, in ?
File "/purelib/py2app/modulegraph/find_modules.py", line 21, in ?
File "/purelib/py2app/modulegraph/modulegraph.py", line 15, in ?
ImportError: No module named ObjectGraph
My first question was:
"where the heck is /purelib ?"
After some poking around, I found that indeed, there is no module
objectgraph in:
/Library/Python/2.3/altgraph/
which is version "0.6.1"
but there is one in:
/Library/Python/2.3/py2app/altgraph
which is version "0.6.3"
As I'd never heard of altgraph before, I'm guessing that the older
version was installed by a previous version of Py2App, and Py2app now
puts it in a different place, and the older one is being found first. To
test this, I removed the older one, and then got:
Traceback (most recent call last):
File "./setup.py", line 10, in ?
import py2app
File "/purelib/py2app/py2app/__init__.py", line 33, in ?
File "/purelib/py2app/py2app/install.py", line 15, in ?
File "/purelib/py2app/py2app/command/__init__.py", line 1, in ?
File "/purelib/py2app/py2app/build_app.py", line 25, in ?
ImportError: No module named MachOGraph
So I then deleted everything outside of /Users that had py2app in it.
Then re-installed py2app. Running it again, I got the same error:
ImportError: No module named MachOGraph
Looking in the source, I see that MachOGraph.py is in src/macholib, but
in my python installation macholib is in both
/Library/Python/2.3/
and
/Library/Python/2.3/py2app/
just like altgraph.
lather, rinse repeat, and BINGO! it works.
So, am I right that those older versions of altgraph and macholib were
installed by an older Py2app?
If so, some sort of waring should be put in about that.
Also, while it's probably a good idea that you're now putting those
packages inside the Py2app directory, it would probably be better to
load them as:
from Py2app.macholib import MachOGraph
So that you know you're getting the version you installed for Py2app.
By the way, if I needed altgraph for something else, I'd now be kind of
screwed. Tome, this supports the argument I've been making for
versioning. If we had a standard approach for versioning python
packages, you could have the Py2app installer install the version of
altgraph (and whatever else) it needs, and not screw up an exiting
installation that other folk's code might be depending on.
-Chris
PS: Now that it works, it works fabulously! My simple wxPython app built
with the very simplest of setup.py files, except for wxversion, which
I'm going to go read Bob's changes in the Wiki, and figure out how to do
that. Nice job.
--
Christopher Barker, Ph.D.
Oceanographer
NOAA/OR&R/HAZMAT (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
More information about the Pythonmac-SIG
mailing list