Pyinstaller语法错误:' yield'内异步函数(Python 3.5.1)

时间:2017-04-01 23:50:01

标签: pyinstaller

我正在尝试使用pyinstaller创建一个可执行文件,以便在没有安装Python的情况下分发给用户。

脚本是一个非常简单的脚本,只是为了测试水,我只使用几行代码作为"豚鼠"。

Hello World程序 - 没有导入,转换正常。

导入matplotlib.pyplot并绘制值列表的我的豚鼠计划失败。

这个问题已知并记录在案here,虽然他们声称这是固定的,或者我可能无法正确阅读。 我认为该解决方案应该在" dev版本中提供"应该是3.2.1,而我已通过pip install --upgrade pyinstaller安装,但无济于事。

我一直得到相同的语法错误,这在读取

时会发生
module jinja2\asyncsupport.py

任何想法如何解决这个问题?我的项目非常简单,它只涉及matplotlibpandas,读取文件并绘制一些数据。

1 个答案:

答案 0 :(得分:12)

我得到了同样的错误。

原因是Jinja2在2.9版本中为Python3.6添加了新的异步函数。

请参阅http://jinja.pocoo.org/docs/2.9/changelog/#version-2-9-6

有两种方法可以避免此错误。 这两个都适合我。

  1. 降级jinja2

       # using Anaconda
       conda install jinja2=2.8.1
    
       # using pip
       pip install jinja2==2.8.1
    
  2. 安装开发版的PyInstaller

      # install from github
      # Don't run "pip install -U pyinstaller" because the dev version is not released yet
      pip install git+https://github.com/pyinstaller/pyinstaller.git
    
      # check if "PyInstaller (3.3.dev0+g483dfde)" is in the list
      pip list