首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅限py2applet开放终端

仅限py2applet开放终端
EN

Stack Overflow用户
提问于 2017-01-05 15:35:51
回答 1查看 242关注 0票数 0

我有一个python脚本,它等待用户输入,然后打印输入的字符串。假设这个脚本叫做"run.py“。

脚本run.py导入了我编写的其他一些python脚本,文件夹结构是:

代码语言:javascript
复制
+ py_app
    - run.py
    + util
        - __init__.py
        - a.py
        - b.py
        - c.py

现在,我希望我可以将这个小应用程序包装在一个.app文件中,以便其他mac用户只需双击即可运行脚本。

我使用py2applet来完成这项工作:

代码语言:javascript
复制
py2applet --make-setup run.py 

setup.py:

从setuptools导入设置

代码语言:javascript
复制
APP = ['run.py']
DATA_FILES = []
OPTIONS = {}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
    packages=['util']

然后

代码语言:javascript
复制
python setup.py py2app -A

running py2app
running build_py
creating build
creating build/bdist.macosx-10.11-intel
creating build/bdist.macosx-10.11-intel/lib
creating build/bdist.macosx-10.11-intel/lib/leancloud_util
copying util/__init__.py -> build/bdist.macosx-10.11-intel/lib/util
copying util/a.py -> build/bdist.macosx-10.11-intel/lib/util
copying util/b.py -> build/bdist.macosx-10.11-intel/lib/util
copying util/c.py -> build/bdist.macosx-10.11-intel/lib/util
creating path/to/app/build/bdist.macosx-10.11-intel/python2.7-semi_standalone
creating path/to/app/build/bdist.macosx-10.11-intel/python2.7-semi_standalone/app
creating path/to/app/build/bdist.macosx-10.11-intel/python2.7-semi_standalone/app/collect
creating path/to/app/build/bdist.macosx-10.11-intel/python2.7-semi_standalone/app/temp
creating path/to/app/dist
creating build/bdist.macosx-10.11-intel/python2.7-semi_standalone/app/lib-dynload
creating build/bdist.macosx-10.11-intel/python2.7-semi_standalone/app/Frameworks
*** creating application bundle: run ***
Done!

一切似乎都很正常,但当我点击生成的应用程序时,终端没有显示出来......

我更改了我的run.py,让它变得非常简单:

代码语言:javascript
复制
#!/usr/bin/env python    
# -*- coding: utf-8 -*-

from util.a import a
from util.b import b
from util.c import c

if __name__ == "__main__":
    print '111111 ...'

但是,当我单击应用程序时,仍然没有任何反应,当然,当我在终端中调用它时,脚本运行得很好:

代码语言:javascript
复制
python run.py

我不确定问题出在哪里。任何建议都将不胜感激,谢谢:)

EN

回答 1

Stack Overflow用户

发布于 2017-06-27 16:46:33

如果您的脚本包含系统调用,请注意,一旦打包,应用程序将丢失系统路径,因此在路径中将无法再找到脚本。

我的建议是在程序的最开始添加以下代码:

代码语言:javascript
复制
os.environ["PATH"] += "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41479547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档