cross platform distribution

Philip Semanchuk philip at semanchuk.com
Fri Sep 4 09:33:54 EDT 2009


On Sep 4, 2009, at 9:24 AM, vpr wrote:

> On Sep 4, 3:19 pm, Philip Semanchuk <phi... at semanchuk.com> wrote:
>> On Sep 4, 2009, at 4:44 AM, vpr wrote:
>>
>>
>>
>>> Hi All
>>
>>> After a couple of experiments, searching around and reading Steve
>>> Holden's lament about bundling and ship python code, I thought I'd
>>> direct this to to the group. I'm using Python 2.6 btw.
>>
>>> I've build a commercial application that I'd like to bundle and  
>>> ship.
>>> I'd like to protect some of my IP and the py2exe and cx_freeze  
>>> builds
>>> provide good enough protection for me.
>>
>>> I'd like to provide a build for windows and a build for linux.  
>>> Windows
>>> ironically has been easier to target and py2exe has given me a nice
>>> build that I can ship between XP, Vista & Server on both 32 and 64
>>> bit.
>>
>>> On linux I've build a build using cx_freeze which works well except
>>> it's not really portable betweem distributions.
>>
>>> I've also been thinking about distributing bytcode versions but  
>>> things
>>> get tricky quickly.
>>
>>> Can anywone give me some pointers?
>>
>> I don't know how much "critical" code you have, but you might want to
>> look at Cython which will translate your Python into C with little
>> change to your Python source. Of course, compiled C code can still be
>> disassembled, but it's harder than Python bytecode.
>>
>> HTH
>> P
>
> Hi Peter

It's Philip, actually. =)


> Sounds like a plan, how portable will that be between Linux systems?

Very portable, but I should have mentioned that it requires you to  
distribute a C file that's compiled on the user's machine. That's easy  
to do via distutils but it adds a requirement to your app.

> Won't I run into some GLIBC problems?
> Can you force it to statically link the binary?

I don't know the answer to those questions, but it's just a regular C  
file, albeit one that's autogenerated. It comes with all of the pros  
and cons of a C file you'd written yourself.

Good luck
Philip







More information about the Python-list mailing list