Python is a scripting language. It is hard to protect python code from being copied. No 100% protection is required but at least slow down those who have bad intentions. Is it possible to minify/uglify python code the way javascript front-end code is being done today?
EDIT: The python code will be used in Raspberry Pi, not server. On raspberry pi, anyone can take out the SDcard and gain access to the python code.
Advertisement
Answer
- What about starting off with only distributing the pyc files? These are files created by Python interpreter for performance reasons–their load times are faster than .pys–but to the casual user they are difficult to decipher.
python -m compileall .
- Ramp up the security by using Cython to compile your python src. To “cythonize” your code, run Cython + GCC on each module. The init.py files must be left intact to keep module imports working. A silly Hello world example:
$ cython helloworld.py -o helloworld.c $ gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing -I/usr/include/python3.7 -o helloworld.so helloworld.c
YMMV using this approach; I’ve run into various gotchas using different modules.