Azure App ServiceにDjangoのサービスを公開しようとしたときにビルドが通らずにハマった。同じことで躓く人がいないとも限らないので書き残しておく。(StackOverFlowには居た)
まず、以下のページに沿って、アプリを公開しようとしていた。
Python Tools 2.2 for Visual Studio を使用した Azure 上の Django と SQL Database | Microsoft Docs
手元の構成は以下の通り
- Python
- PTVS(Python Tools for Visual Studio)
- Django
- Visual Studio 2015
この中で公開(発行)を実施する際に、Visual Studioが以下のようなエラーを吐いた
エラー “RunPythonCommand” タスクが予期せずに失敗しました。
System.ComponentModel.Win32Exception (0x80004005): パラメーターが間違っています。
場所 System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
場所 System.Diagnostics.Process.Start()
場所 System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
場所 Microsoft.PythonTools.BuildTasks.RunPythonCommand.Execute()
場所 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
場所 Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() DjangoWebProject2 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Python Tools\Microsoft.PythonTools.Django.targets 64
あと「出力」ペインに
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Python Tools\Microsoft.PythonTools.Django.targets(64,5): error MSB4018:
なにやらいろいろ書いてあるが、要はPythonのビルドを担当してるMSBuildのタスクがエラーを吐いたということらしい。なにせ情報が少なく、「MSB4018」だとか「Django MSBuild」だとかのキーワードで検索して、ビルド成果物を何度も手動削除しても解決しなかった。
しばらくハマっていたのだが、VSで新規プロジェクトを作成したときに仮想ディレクトリ設定で「Path environment variable」を埋めていなかったので、改めて適当に埋めたらビルドが通ったのだった。
上記設定は、「Python Environments」のウインドウで、使用中の仮想ディレクトリのConfigureを選択することで表示可能。
これでビルドは通ったが、Azure に発行するときにまたエラーが出たので今度はそれを直さなきゃ・・・