对非程序员隐藏Python代码
如何对客户混淆/隐藏我的Python代码,使其无法以自己喜欢的方式更改源代码 我知道没有有效的方法隐藏Python代码,因此无法读取它。 我只是想要一个简单的保护,那些不知道自己在做什么的人不能仅仅用文本编辑器打开源文件,不费吹灰之力就能修改或理解所有内容。因为我的代码写得很容易理解,所以我想先隐藏我使用的主要原则 如果有人真的想了解我做了什么,他会的。我知道对非程序员隐藏Python代码,python,obfuscation,Python,Obfuscation,如何对客户混淆/隐藏我的Python代码,使其无法以自己喜欢的方式更改源代码 我知道没有有效的方法隐藏Python代码,因此无法读取它。 我只是想要一个简单的保护,那些不知道自己在做什么的人不能仅仅用文本编辑器打开源文件,不费吹灰之力就能修改或理解所有内容。因为我的代码写得很容易理解,所以我想先隐藏我使用的主要原则 如果有人真的想了解我做了什么,他会的。我知道 那么,有没有一种常用的方法可以用来对python代码进行简单的保护呢?您可以尝试使用pyinstaller或py2exe之类的工具将它们
那么,有没有一种常用的方法可以用来对python代码进行简单的保护呢?您可以尝试使用pyinstaller或py2exe之类的工具将它们转换为可执行文件,尽管这会增加分发的大小。您可以尝试使用pyinstaller或py2exe之类的工具将它们转换为可执行文件,尽管这会增加分发的大小将增加分发大小。只需使用中的方法将其编译为字节码即可
可以分发
pyc
文件来代替py
文件。只需使用中的方法将其编译为字节码即可
可以分发
pyc
文件来代替py
文件。您可以将所有python文件放在zip文件中,并在应用程序启动之前或启动期间将zip文件放在python路径上。如果您将zip文件命名为.zip以外的名称,它将防止技术上的无知者查找源代码
要启动应用程序,请解压缩主模块,并在导入任何压缩的源代码之前更新python路径本身
在主模块中:
__import__('sys').path.append('./source.dat')
import mymodule
...
if __name__ == '__main__':
....
您需要在zip存档中包含.pyo和.pyc文件,否则导入会很慢。有关详细信息,请参阅。您可以将所有python文件放在一个zip文件中,并在应用程序启动之前或启动期间将zip文件放在python路径上。如果您将zip文件命名为.zip以外的名称,它将防止技术上的无知者查找源代码 要启动应用程序,请解压缩主模块,并在导入任何压缩的源代码之前更新python路径本身 在主模块中:
__import__('sys').path.append('./source.dat')
import mymodule
...
if __name__ == '__main__':
....
您需要在zip存档中包含.pyo和.pyc文件,否则导入会很慢。有关详细信息,请参阅。您最好使用compileall
:
python -m compileall ./
您最好使用compileall
:
python -m compileall ./
你可以
有两种方法可以生成字节码
python-m compileall-x./*
或,
您可以使用此代码将库编译为字节码
import compilell
导入操作系统
lib\u path=“您的lib\u路径”
build\u path=“your-dest\u path”
compileall.compile\u dir(lib\u路径,force=True,legacy=True)
def编译(cu_路径):
对于os.listdir(cu_路径)中的文件:
如果os.path.isdir(os.path.join(cu_path,file)):
编译(os.path.join(cu_路径,文件))
elif file.endswith(“.pyc”):
dest=os.path.join(构建路径、cu路径、文件)
os.makedirs(os.path.dirname(dest),exist\u ok=True)
重命名(os.path.join(cu_路径,文件),dest)
编译(库路径)
您可以这样做
有两种方法可以生成字节码
python-m compileall-x./*
或,
您可以使用此代码将库编译为字节码
import compilell
导入操作系统
lib\u path=“您的lib\u路径”
build\u path=“your-dest\u path”
compileall.compile\u dir(lib\u路径,force=True,legacy=True)
def编译(cu_路径):
对于os.listdir(cu_路径)中的文件:
如果os.path.isdir(os.path.join(cu_path,file)):
编译(os.path.join(cu_路径,文件))
elif file.endswith(“.pyc”):
dest=os.path.join(构建路径、cu路径、文件)
os.makedirs(os.path.dirname(dest),exist\u ok=True)
重命名(os.path.join(cu_路径,文件),dest)
编译(库路径)
请查看的“使用编译字节码”部分。如果我使用相同的python版本,.pyc文件是否可以在不同的环境/操作系统之间移植?字节码会被解释,因此它是可移植的。我知道这种方法,但不确定这是否是正确的方法。感谢您的许可。请查看的“使用编译字节码”部分。如果我使用相同的python版本,那么.pyc文件是否可以在不同的环境/操作系统之间移植?字节码会被解释,因此它将是可移植的。我知道这种方法,但不确定它是否正确。谢谢你的批准。