我编写了一个数独求解器,特别是使用tkinter和multiprocessing。我想把它变成一个独立的应用程序,我正在使用py2app。
我运行了py2applet-3.3 --make-setup sudoku_app.py(这是通过macports安装时调用的),并且它成功了。但是当使用python3.3(python3.3 setup.py py2app)构建时,它会返回一个带有几乎无限堆栈跟踪的SyntaxError,其结尾如下:
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时出现了一堆错误。我已经在python3中编写了代码,尽管尝试通过各种try ... except - blocks和 future 导入来保持python2兼容性。但在某些时候,它变得太复杂了,我决定只使用python3。
为什么py2app不能与python3一起使用?
答案 0 :(得分:2)
您的应用程序无法使用py2app(尚未),因为我没有考虑您对py3k支持的方式。特别是,modulegraph假定依赖图中的所有模块都包含当前python版本的有效python代码。
你可以在我的bitbucket页面(https://bitbucket.org/ronaldoussoren/py2app)提交一个错误,以确保我不会忘记解决这个问题吗?