Python:如何在 2020 年提供单个可执行文件而不显示代码

Fed*_*ato 6 python deployment

Stack Overflow 有很多关于

  • 如何给别人一个保护源代码的python脚本
  • 如何编译python文件
  • 如何创建包和部署代码

但我找不到我的问题的答案:

我想给别人我的python脚本,而不给他源代码。我目前的尝试是编译文件并赠送 .pyc 文件。

这肯定不是最好的解决方案。此外,我的代码是由不同的文件制作的。为了提供单个可执行的 pyc 文件,我在编译之前将所有代码放在一个文件中:对开发人员来说真是地狱

我怎样才能以更干净的方式实现我的目标?

旁注

我知道 .pyc 文件不会隐藏太多,但与提供 .py 文件相比,它肯定更好

尽管如此,.pyc 文件可能会出现令人难以置信的问题(因为它们可能依赖于系统)

小智 1

您可以使用 pyinstaller 创建 .exe 文件。

pip install pyinstaller
Run Code Online (Sandbox Code Playgroud)

然后,在源代码目录中打开终端并使用以下命令:

pyinstaller --onefile source.py
Run Code Online (Sandbox Code Playgroud)

如果您有与 python 文件的数据库连接,则可以使用以下命令添加它:

pyinstaller --onefile --add-data 'database.db:.' source.py
Run Code Online (Sandbox Code Playgroud)

这里, :。显示database.db是一个源数据文件,它将复制到Python应用程序的顶层。