Где указать путь к файлам в приложении Python на основе фляги Azure - PullRequest
0 голосов
/ 26 августа 2018

У меня есть основанное на Flask веб-приложение на Python, которое отлично работает на Azure. Я сделал некоторые изменения и добавил input.json файл, который содержит некоторые настройки проекта. У меня есть файлы ниже в корневом каталоге проекта:

app.py -> Main python file
input.json -> Input configuration file used by app.py
requirements.txt -> This file contains python packages used by project
web.config -> Azure web config file

Ниже приведено содержимое web.config файла

<configuration>
  <appSettings>
    <add key="WSGI_HANDLER" value="app.wsgi_app"/>
    <add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
    <add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
  </appSettings>
  <system.webServer>
    <handlers>
      <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python364x64\python.exe|D:\home\Python364x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
    </handlers>
  </system.webServer>
</configuration>

Это все работает нормально на моей локальной машине. Но когда я развернул это на Azure, API не работал. Я открыл консоль kudu и проверил логи wfastcgi.log, это показывало ошибку:

No such file or directory: 'D:\\home\\python364x64\\input.json'

Проблема в том, что input.json находится внутри D:\home\site\wwwroot>, но он автоматически выбирает неправильный путь и, следовательно, не выполняет код.

1. Почему он ищет файл input.json по неверному пути .?

2. Как я могу указать правильный путь для input.json файла .?

3. Если в будущем я добавлю больше файлов, где я должен правильно указать путь ко всем файлам. Должны ли мы упомянуть об этом в web.config файле .?

Спасибо.!

1 Ответ

0 голосов
/ 26 августа 2018

уверен, что вам нужно использовать относительный путь, что-то вроде этого:

os.path.join(os.path.dirname( __file__ ), 'input.json')

, так что вы получите путь в том же каталоге, где находится ваш файл python.И это не связано с web.config.Ваш файл Python пытается загрузить этот файл (это мое предположение).следовательно, он ищет его по пути относительно интерпретатора, а не по вашему файлу python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...