2014-02-17 5 views
0

나는 tkinter와 multiprocessing뿐만 아니라 특히 sudoku solver를 사용했다. 나는 py2app을 사용하고있는 독립 실행 형 응용 프로그램으로 만들고 싶습니다.py2app python3.3을 사용할 때 SyntaxError

필자는 py2applet-3.3 --make-setup sudoku_app.py (즉, macports를 통해 설치되었을 때 호출 된 것입니다.)를 실행했는데 성공했습니다. python3.3 (python3.3의 setup.py의 py2app)를 구축 할 때 그러나, 이렇게 끝나는 거의 끝이 스택 트레이스와 구문 에러를 반환

File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/modulegraph/modulegraph.py", line 954, in load_module 
co = compile(contents, pathname, 'exec', 0, True) 
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/sympy/mpmath/libmp/exec_py2.py", line 2 
exec string in globals, locals 
     ^
SyntaxError: invalid syntax 

python2.7와 같은 설치 파일을 실행, 빌드에는 성공하지만 생성 된 .app을 실행하려고하면 오류가 발생합니다. 파이썬 3에서 코드를 작성했는데 다양한 try ... except-blocks을 통해 파이썬 2 호환성을 유지하려고 시도했지만 미래에는 수입품이있다. 그러나 어떤 점에서는 너무 복잡해졌으며 python3을 사용하기로 결정했습니다.

왜 py2app는 python3에서 작동하지 않습니까?

답변

2

py3k 지원 방법을 고려하지 않았기 때문에 응용 프로그램이 py2app (아직)와 작동하지 않습니다. 특히, modulegraph는 의존성 그래프의 모든 모듈이 현재 파이썬 버전에 유효한 파이썬 코드를 포함하고 있다고 가정합니다.

내 bitbucket 페이지 (https://bitbucket.org/ronaldoussoren/py2app)에 버그를 신고하여 문제를 해결하는 것을 잊지 않았습니까?

+0

답변 해 주셔서 감사합니다. 당연하지. 나는 스택 추적에있는 파일의 이름을 바꾸어서 스스로 고칠 수있었습니다 : exec_py2.py를 _exec_py2.py로, exec_py3.py를 exec_py2.py로 변경했습니다. 어쩌면 py2app가 잘못된 파일을 사용하고 있을까요? – Epimetheus

+0

아닙니다. 호환성 레이어에는 "if Py3K : import exec_py3; else import exec_py2 "와 py2app (또는 오히려 modulegraph)는 하나만 도달 할 수 있다고하더라도 두 가져 오기를 모두 봅니다. –