[Pythonmac-SIG] Installing modules with py2app
Mier, Alejandro
alejandro at ti.com
Tue Jan 18 23:47:15 CET 2011
Hi Sridhar
Your suggestion to debug this problem started me in the right path. I found a workaround for the issue.
First, I explicitly included distutils in my py2app bundle. With that, the error I get is:
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
error: invalid command 'install'
I modified the included distutils files, and managed to get this stack trace
Traceback (most recent call last):
File "distutils/dist.py", line 837, in get_command_class
__import__ (module_name)
File "distutils/command/install.py", line 21, in <module>
from site import USER_BASE
cannot import name USER_BASE
The site.py included in the bundle has this comment: This is stripped down and customized for use in py2app applications
So apparently, py2app is removing USER_BASE and USER_SITE from site.py. I am not sure why it does that, but it is preventing the installation of modules with py2app.
I worked around it by modifying the included site.py to declare USER_BASE and USER_SITE after generating the .app bundle.
I think this might be a bug in py2app, but would like to know your input on this.
Regards,
------------------------------
Alejandro Mier y Concha
-----Original Message-----
From: Sridhar Ratnakumar [mailto:sridhar.ratna at gmail.com]
Sent: Tuesday, January 18, 2011 11:43 AM
To: Mier, Alejandro
Cc: pythonmac-sig at python.org
Subject: Re: [Pythonmac-SIG] Installing modules with py2app
On Tue, Jan 11, 2011 at 9:42 AM, Mier, Alejandro <alejandro at ti.com> wrote:
> Hello
>
> I have a script that installs Python, and then installs some modules with:
>
> subprocess.call("python setup.py install")
>
> The script works on Windows with py2exe, but gives me this error when using py2app:
>
> File setup.py
> from distutils.core import setup
> ImportError: No module named distutils.core
Try debugging this issue by printing sys.path, and check if
distutils/core... exists in one of them:
subprocess.call('python -c "import sys; print((sys.prefix, sys.path))"')
-srid
More information about the Pythonmac-SIG
mailing list