Outline
運行環境:
# Windows 10 # python 8 # redis 2.10.5 # Flask 1.0.2 # Celery 3.1.25
# debug 工具: Pycharm
准備打一個服務,Flask+celery,但是在執行時報錯:
File "D:\ProgramData\Anaconda3\envs\gazh\lib\site-packages\kombu\transport\redis.py", line 815
def _connparams(self, async=False, _r210_options=(
^
SyntaxError: invalid syntax
問題原因
網上查了下,感覺內容千篇一律基本都是復制粘貼這些內容~:
我查了好久才知道,這是由於async在python3.7已經是關鍵字,但是celery4.2版本沒有更新導致的。此問題將在下一個發布版本修復。
目前只能將celery文件中的async命名為其他變量名或者換一個python3.6的編輯器,替換要替換多處,因此最好是換一個python3.6的編輯器。
問題原因是變量名沖突;
解決方案兩個:1、改python版本; 2、改變量名
由於我只是在Windows做測試,后續要放在Linux server上,所以圖省事不換python版本了,直接改源碼里的變量名。
解決
直接點擊上圖中redis.py,進入文件;
Ctrl + R 進行變量名替換
把全部rsync 替換為 rsyncs
再去執行腳本就不報錯了
(這個方法治標不治本,只是臨時應急,開發環境的話還是要從根本解決)