Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对非程序员隐藏Python代码_Python_Obfuscation - Fatal编程技术网

对非程序员隐藏Python代码

对非程序员隐藏Python代码,python,obfuscation,Python,Obfuscation,如何对客户混淆/隐藏我的Python代码,使其无法以自己喜欢的方式更改源代码 我知道没有有效的方法隐藏Python代码,因此无法读取它。 我只是想要一个简单的保护,那些不知道自己在做什么的人不能仅仅用文本编辑器打开源文件,不费吹灰之力就能修改或理解所有内容。因为我的代码写得很容易理解,所以我想先隐藏我使用的主要原则 如果有人真的想了解我做了什么,他会的。我知道 那么,有没有一种常用的方法可以用来对python代码进行简单的保护呢?您可以尝试使用pyinstaller或py2exe之类的工具将它们

如何对客户混淆/隐藏我的Python代码,使其无法以自己喜欢的方式更改源代码

我知道没有有效的方法隐藏Python代码,因此无法读取它。 我只是想要一个简单的保护,那些不知道自己在做什么的人不能仅仅用文本编辑器打开源文件,不费吹灰之力就能修改或理解所有内容。因为我的代码写得很容易理解,所以我想先隐藏我使用的主要原则

如果有人真的想了解我做了什么,他会的。我知道


那么,有没有一种常用的方法可以用来对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程序
  • 如果使用命令行,请使用将python代码编译为python二进制代码。 例如:
    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程序
  • 如果使用命令行,请使用将python代码编译为python二进制代码。 例如:
    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文件是否可以在不同的环境/操作系统之间移植?字节码会被解释,因此它将是可移植的。我知道这种方法,但不确定它是否正确。谢谢你的批准。