2017-04-01 56 views
4

我試圖用pyinstaller創建一個單獨的可執行文件來分發給沒有安裝Python的用戶。Pyinstaller語法錯誤:異步函數中的'yield'(Python 3.5.1)

腳本是一個非常簡單的腳本,只是爲了測試水域,我只用了幾行代碼作爲「豚鼠」。

Hello World程序 - 無進口,轉換正常。

我的豚鼠計劃,它導入matplotlib.pyplot並繪製值列表失敗。

這個問題是已知的和記錄在here,雖然他們聲稱它是固定的,或者我可能無法正確閱讀。 我認爲這個修補程序應該在「dev version」中可用,它應該是3.2.1,並且我已經通過pip install --upgrade pyinstaller安裝了,但無濟於事。

我不斷收到同樣的語法錯誤,讀

module jinja2\asyncsupport.py 

任何想法如何解決這個時候發生?我的項目是非常簡單的,它只涉及matplotlib,pandas,讀取文件並繪製一些數據。

回答

11

我得到了同樣的錯誤。

原因是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 
    
+0

由於開發版本!選項1無縫工作。我已經嘗試過選項2,但由於我沒有安裝'git',所以我失敗了。 –

+0

選項1也適用於我。謝謝! – William