py2app 制作的应用程序中存在的 Python 代码

Posted

技术标签:

【中文标题】py2app 制作的应用程序中存在的 Python 代码【英文标题】:Python code present in app made by py2app 【发布时间】:2013-10-31 16:49:42 【问题描述】:

我在 mac osx 10.8.5 上使用 python 制作应用程序我使用 py2app 将 python 脚本转换为应用程序。但是,在应用程序中,存在 On Show Package Contents-->Contents-->Resources 原始代码。我不想通过将我的应用程序作为安全问题分发给其他人来展示我的代码。我用 (.pyc) 代码删除了 (.py) 代码,在这种情况下,应用程序无法正常工作。 请提出一些建议。我也搜索其他问题,但没有得到想要的结果。我的 setup.py 是

from setuptools import setup

APP=['myapp.py']
DATA_FILES= [('',['config.cfg'])]
OPTIONS='iconfile':'cc.icns','argv_emulation': True,'plist':'CFBundleShortVersionString':'1.0'

setup(
    app=APP,
    data_files=DATA_FILES,
    options='py2app': OPTIONS,
    setup_requires=['py2app']
    ) 

【问题讨论】:

【参考方案1】:

最简单的解决方法是将 myapp.py 中的代码移动到另一个模块并在 myapp.py 中导入该模块。

请注意,除主脚本以外的模块仅进行字节编译(作为 .pyc 文件),这些文件仍然可以轻松转换为源代码。

按字节编译脚本文件在我的待办事项列表中,但比您注意到的仅用 .pyc 文件替换 .py 文件更复杂 :-)

【讨论】:

还有其他方法吗。我想要更多的安全感。导入模块时,time.sleep(2) 中显示错误为“属性错误”:“NoneType”对象没有属性睡眠 “我想要更多的安全性。” - 请注意,没有“安全”代码之类的东西。你可以混淆它,编译它,用你喜欢的任何语言编写它,但如果有人足够关心找出其中的内容,他们总是可以再次反编译和取消混淆它。即使是一个简单的strings 命令也可以让他们提取任何人类可读的文本。你最大的希望就是让窥探的努力比它的价值更多。 @foo ok 导入模块时,time.sleep(2) 中显示错误为“属性错误”:“NoneType”对象没有属性睡眠,知道为什么会显示

以上是关于py2app 制作的应用程序中存在的 Python 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何让 py2app 和 cxfreeze 使用 Python 3 作为默认版本

Py2App - PyQt5 使用错误的 port_v#

用Python和py2app写独立的Mac OS X 应用

Python爬糗百热门20条并邮件分发+wxPython简易GUI+py2app转成可运行文件

无法在终端执行使用 tkinter 和 py2app 创建的 Mac 应用程序

使用 Py2app 时出现导入错误