2012-07-25 3 views
2

내 스크립트 py2app와 함께 번들로 python와 함께 실행했을 때 잘 작동하지만 내가 py2app로 구축 한 후, 파일 및 폴더 .app/Contents/Resources 만들어집니다. 나는 os.getcwd()을 사용하여 스크립트의 위치를 ​​확인합니다.파이썬 : 스크립트의 변화 CWD는

이 문제를 해결하고 내 파일이 디렉토리를 포함하는 응용 프로그램에서 만들어 졌는지 확인하려면 어떻게해야합니까?

해키 수정

여기에 작동하는 해킹 : 당신이 제대로 요구하고 나는이 문제를 처리하기 위해 다음과 유사한 것을 사용 이해하면

if re.search('([^/]+$)', cwd).group(0) == "Resources": 
    mkFldr(cwd[0:-27] + fldr)   #this is a try except function 
    sanExt(extPath, str(cwd[0:-27] + fldr + "/" + extName + "_san.csv")) 
else: 
    mkfldr(fldr) 
    sanExt(extPath, str(cwd + "/" + fldr + "/" + extName + "_san.csv")) 

답변

0

. '고정 된'부분은 스크립트 실행 여부 또는 py2exe/py2app 실행 파일 여부에 따라 동작을 변경합니다.

import sys 
import os.path 

frozen = getattr(sys, 'frozen', '') 

if frozen: 
    MyFolder = os.path.dirname(sys.executable) 
else: 
    Myfolder = os.getcwd() 
관련 문제