Obscuring Python source from end users
steve+comp.lang.python at pearwood.info
Thu Oct 2 09:22:48 CEST 2014
Marko Rauhamaa wrote:
> Dan Stromberg <drsalists at gmail.com>:
>> On Mon, Sep 29, 2014 at 4:47 AM, Steven D'Aprano
>>> Yes. Distribute the pyc files only.
>> Yes, this is the way it's usually done.
> Has the .pyc file format stabilized? A decade ago, my employer shipped
> an application as .pyc files but had to ship the matching CPython binary
> with it.
There is no promise that Python byte code or the format of .pyc files will
be stable across minor releases. However, PEP 6 states that bugfix releases
should have stable .pyc files.
So, you ought to expect that .pyc files will change when any of the
- the hardware (e.g. 32- versus 64-bit, or ARM versus x86 processor);
- the Python implementation (e.g. Stackless versus CPython);
- the minor or major version number (e.g. 2.6 to 2.7, or 2.x to 3.x);
but you can expect the .pyc files to remain compatible for:
- the operating system (e.g. Windows, Mac, Linux);
- bug-release versions (e.g. 2.7.1 to 2.7.2).
Of course, you can distribute the Python executable, but it may be easier to
just distribute a separate .pyc file for each minor release you wish to
Here are some comments from one of the senior core developers:
More information about the Python-list