2017-01-05 19 views
0

사용자 입력을 기다린 다음 입력 문자열을 인쇄하는 python 스크립트가 있습니다. 이 스크립트를 "run.py"라고합니다. py2applet 열린 터미널 전용

다른 파이썬 스크립트를 내가 쓴 스크립트 run.py 수입

, 폴더 구조는 다음과 같습니다

+ py_app 
    - run.py 
    + util 
     - __init__.py 
     - a.py 
     - b.py 
     - c.py 

지금 내가이 .APP 파일에이 작은 응용 프로그램을 포장 할 수 있기를 바랍니다 다른 맥 사용자가 할 수 있도록 스크립트를 실행하려면 더블 클릭하십시오.

py2applet --make-setup run.py 

setup.py :

setuptools에에서

가져 오기 설정

APP = ['run.py'] 
DATA_FILES = [] 
OPTIONS = {} 

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

다음

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! 

모든

나는 작업을 수행 할 py2applet을 사용 세상에있는 것 같아.

#!/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 ...' 

하지만 여전히 아무 일도 발생하지 않습니다 :

나는 진짜 간단하게 내 run.py을 변경 ...... 잘 케이하지만 생성 된 응용 프로그램을 클릭하면, 터미널 용량은 표시하지 앱을 클릭하면 물론 터미널에서 호출 할 때 스크립트가 제대로 실행됩니다.

python run.py 

무엇이 문제 일 수 있는지 잘 모르겠습니다. 조언을 주시면 감사하겠습니다 :)

답변

0

스크립트가 시스템 호출을 포함하고 있다면 패키지가 PATH에서 더 이상 스크립트를 찾을 수 없도록 시스템이 PATH를 잃어 버린다는 점에 유의하십시오.

os.environ["PATH"] += "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
:

나의 제안은 프로그램의 맨 처음에이 코드를 추가하는 것입니다