Jiri Barton wrote:
I'd like to be able to distribute some python modules of my system (plugins)
without the source. So far, I have done this by including only the *.pyc
files. However, I have recently found they are platform dependent and
python version dependent.

This approach has been very convenient because I don't have to mess up with
__import__ and the like - which seem to be kind of a pain when inter-module
dependencies are introduced.

Can some one point me in another direction of protecting the code? I know
and this whole thing just does not sound right to me either but I am forced
to do so.

Protecting code in any language is pretty tough and/or futile, but you can Google the archives if you're interested in reading more on that.


Anyway, you can create a module on the fly like this (untested):

import new, sys
name = 'MyModule'
m = sys.modules[name] = new.module(name)
exec codeStr in m.__dict__

where codeStr is a string that contains the source code of your module (e.g. from file('somemodule.py').read() ).

You can combine the above with whatever mechanism you come up with for distributing the code itself. You could store it in an encrypted archive file, you could download it on the fly from a remote server over a secure connection, etc.

-Dave
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to