2017-11-28 8 views
0

VSCode-Python拡張子を使用してVSCodeからPythonフラスコアプリをデバッグしようとしています。窓のビジュアルスタジオコード内のフラスコアプリをデバッグ

  • flask.cliモジュールをインポートスタートアップスクリプトを使用し
  • launch.jsonで"module":"flask.cli"オプションを使用して2つの文書をよるとそれを動作させるには2つの方法があります。記載されているhere

私は最終的にOSError: Windows error 1となります。これはからインポートされたmain関数が存在しないことを示すエラーのようです。

私はvirtualenvを使用しています。コマンドラインから実行しようとすると、アプリケーションは正常に動作します。ここで

はsettings.jsonコンテンツ(ENVは、環境スクリプトが含まれているフォルダです)です:

{ 
    "python.pythonPath": "${workspaceRoot}\\backend\\env\\Scripts\\python.exe" 
} 

そして、ここではlaunch.jsonです:ここでは

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "name": "Python: Flask (0.11.x or later)", 
      "type": "python", 
      "request": "launch", 
      "stopOnEntry": false, 
      "pythonPath": "${config:python.pythonPath}", 
      "cwd": "${workspaceRoot}", 
      "module":"flask.cli", 
      "env": { 
       "FLASK_APP": "${workspaceRoot}\\backend\\app.py" 
      }, 
      "args": [ 
       "run", 
       "--no-debugger", 
       "--no-reload" 
      ], 
      "debugOptions": [ 
       "WaitOnAbnormalExit", 
       "WaitOnNormalExit", 
       "RedirectOutput" 
      ] 
     } 
    ] 
} 

は完全なエラーですスタックトレース:

runpy.py:125: RuntimeWarning: 'flask.cli' found in sys.modules after import of package 'flask', but prior to execution of 'flask.cli'; this may result in unpredictable behaviour 
    warn(RuntimeWarning(msg)) 
line 205, in run_module return _run_module_code(code, init_globals, run_name, mod_spec) 
line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) 
line 85, in _run_code exec(code, run_globals) 
line 517, in <module> main(as_module=True) 
line 513, in main cli.main(args=args, prog_name=name) 
line 380, in main return AppGroup.main(self, *args, **kwargs) 
line 707, in main e.show() 
line 47, in show echo(self.ctx.get_usage() + '\n', file=file, color=color) 
line 259, in echo file.write(message) 
line 180, in write return self._text_stream.write(x) 
line 164, in write raise OSError(self._get_error_message(GetLastError())) 
OSError: Windows error 1 
+0

あなたは一番下のエラーと警告を混同しました。このエラーは 'flask.cli.main'が存在しないことを示していません。何らかの理由で 'stdout'に書き込めないようです。 – davidism

+0

あなたはエラーの報告によって少し混乱しているという意味で正しいです。それにもかかわらず、最初の行は単なる警告であり、本当の問題は私が間違ったアプリケーションファイルを指していたことでした。私は本当にスタックトレースが何を言いたいのか分かりません。 FLASK_APP変数を修正することで問題が解決されました。 "FLASK_APP": "$ {workspaceRoot} \\バックエンド\\ the_correct.py" – hoonzis

答えて

0
{ 
"version": "0.2.0", 
"configurations": [ 
    { 
     "name": "Flask app", 
     "type": "python", 
     "request": "launch", 
     "stopOnEntry": false, 
     "pythonPath": "${config:python.pythonPath}", 
     "program": "${file}", 
     "cwd": "${workspaceRoot}", 
     "env": { 
      "FLASK_APP": "${workspaceRoot}\\backend\\app.py" 
     }, 
     "args": [ 
      "run", 
      "--no-debugger", 
      "--no-reload" 
     ], 
     "envFile": "${workspaceRoot}/.env", 
     "debugOptions": [ 
      "WaitOnAbnormalExit", 
      "WaitOnNormalExit", 
      "RedirectOutput" 
     ] 
    } 
], 
"compounds": [] 
} 

私はあなたが "モジュール"を削除する必要があります: "フラスコ.cli"は私のために働かなかったので

+0

私のアプローチはテストしませんでした。私はflask.cliで動作させることができたのですが、間違ったpythonファイルを指しているだけでした。エラーメッセージが私をたくさん混乱させました – hoonzis

関連する問題