[Pythonmac-SIG] Building multiple command-line( ( CLI ) programs with py2app

Read Roberts rroberts at adobe.com
Mon Jan 16 21:59:41 CET 2006


I've run into a glitch in this approach. Although I can easily build a
py2app application that takes the action name as the first argument, and
invoke it from the command line  with:
FDK.app/Contents/MacOS/FDK,

I cannot execute a symbolic link to the same file, The following produces an
error:

Ln -s FDK.app/Contents/MacOS/FDK pythonFDK
PythonFDK -u
->  pythonFDK[834] The Info.plist file must have values for the CFBundleName
or CFBundleExecutable strings.

I'd rather not expose an average user to typing a path into the middle of a
bundle app. Do you know offhand if this issue is fixable, or if  there is a
way to run the bundle app from the command line and provide sys.argv
arguments? If this is documented somewhere, just a pointer to the docs would
be  helpful.

- Read Roberts


On 1/14/06 1:33 PM, "Bob Ippolito" <bob at redivi.com> wrote:

> Given the current implementation, I would build one application that
> takes the action name as the first argument.  This would be similar
> in style to something like subversion "svn update", "svn commit" or
> distutils "setup.py install", "setup.py build", etc.
> 
> One huge advantage to this approach is that the command with no
> arguments (or help as an argument) can list all of the things you can
> do with the tool, where 30 commands would get easily lost amongst the
> bin folder, or even conflict with some other tool.
> 
> -bob
> 
> On Jan 14, 2006, at 9:34 AM, Read Roberts wrote:
> 
>> Thank you for your response.
>> 
>> I am distributing a set of tools for editing fonts. Five are quite
>> large and
>> complex, the rest are small programs for doing very specific teaks
>> to the
>> font files. They are all usually run in batch-mode to be applied to
>> many
>> font files, and typically take as input only ad input and output
>> file names
>> and a few option setting,  hence the implementation as command-line
>> tools.
>> 
>> My current plan is to use py2app to build a single bundle app, and
>> then
>> build a shell command file for each tool to wrap a call to the CLI
>> program
>> inside the bundle app with the name of the desired Python file to
>> to run.
>> 
>> - Read Roberts
>> 
>> 
>> On 1/14/06 4:32 AM, "Bob Ippolito" <bob at redivi.com> wrote:
>> 
>>> 
>>> On Jan 13, 2006, at 6:48 PM, Read Roberts wrote:
>>> 
>>>> I would like to distribute about 30 Python command-line programs
>>>> that use a
>>>> single stand-alone Python distribution. Looking at py2app, I only
>>>> see the
>>>> following two ways of doing it. Can anyone suggest a better
>>>> approach?
>>> 
>>> What do you want to happen, ideally?  Clearly you don't want 30 CLI
>>> apps with 30 full Python distributions.  There are several
>>> workarounds, but in order to make py2app serve your needs I'm going
>>> to need to know what that is.  Also, you probably have the same need
>>> on other platforms, so cx_freeze and/or py2exe should be capable of
>>> doing the same thing.
>>> 
>>> -bob
>>> 
>> 
>> Read Roberts Adobe SJ on Weds, home office 415-642-5642 other days
>> 
> 

Read Roberts Adobe SJ on Weds, home office 415-642-5642 other days



More information about the Pythonmac-SIG mailing list