From Free Software Directory
Revision as of 04:54, 29 October 2016 by IanK (talk | contribs)

Jump to: navigation, search



Python Source Code Obfuscator

Configurable Multi-Module Python Source Code Obfuscator. This program will take your multi-module Python 2.7 or 3.x source code and replace all identifiers by numered tags. Identifiers of 3rd party or standard modules as well as identifiers used in getattr, setattr, exec and eval can be exempted.


Pyo will obfuscate your extensive, real world, multi module Python source code for free! And YOU choose per project what to obfuscate and what not, by editting the config file:

You can recursively exclude all identifiers from certain modules from obfuscation. You can exclude human readable configuration files containing Python code. You can use getattr, setattr, exec and eval by excluding the identifiers they use. You can even obfuscate module file names. You can run your obfuscated code from any platform.


Download and unzip Pyo into an arbitrary directory of your computer. You only need the files pyo.py and py_config.txt. They are in the pyo subdirectory of your unzipped Pyo version. Put pyo.py or a script to launch it in the path of your OS, or simply copy pyo.py to the topdirectory of your project.


For safety, backup your sourcecode and valuable data to an off-line medium. Put a copy of pyo_config.txt in the top directory of your project. Adapt it to your needs according to the remarks in pyo_config.txt. This file only contains plain Python and is exec’ed, so you can do anything clever in it. Open a command window, go to the top directory of your project and run pyo.py from there. If the topdirectory of your project is e.g. ../work/project1 then the obfuscation result wil be in ../work/project1_pyo. Further adapt pyo_config.txt until you’re satisfied with the result. Type ‘pyo ?’ or ‘python pyo.py ?’ (without the quotes) on the command line to display a help text and the licence.



Verified by

Verified on




Verified by


Verified on

29 October 2016

Leaders and contributors

Jacques de Hooge Software Engineer

Resources and communication

AudienceResource typeURI
Python (Ref)https://pypi.org/project/Opy

Software prerequisites

Required to usePython 2.7 or 3.x

This entry (in part or in whole) was last reviewed on 29 March 2018.


Property "Submitted by" (as page type) with input value "{{{Submitted by}}}" contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process.
"{{{Submitted date}}}" contains an extrinsic dash or other characters that are invalid for a date interpretation.

"Software Engineer" is not in the list (Maintainer, Contributor, Developer, Sponsor, Unknown) of allowed values for the "Role" property.

"Python Developers" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.