Как добавить исполняемый файл в PATH в Kudu Azure? - PullRequest
0 голосов
/ 19 октября 2019

Мне нужно добавить драйвер gecko, чтобы запустить браузер без головы на Azure как часть моего веб-сайта, но мне нужно добавить geckodriver в PATH (очевидно, я не могу вручную указать местоположение файла geckodriver в Python?)

Я знаю, что должен использовать файл applicationHost.xdt и добавить его в папку / home / site, но моя страница Kudu не позволяет мне добавлять файлы (я могу создать файл с помощью «touch»', но я не могу его отредактировать).

Вот так выглядит моя страница Kudu: https://imgur.com/a/99oHUoC

Это мое приложениеHost.xdt:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
  <system.webServer> 
    <runtime xdt:Transform="InsertIfMissing">
      <environmentVariables xdt:Transform="InsertIfMissing">
        <add name="geckodriver" value="geckodriverL" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />    
        <add name="PATH" value="%PATH%;%HOME%\site\wwwroot\cpu" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />    
      </environmentVariables>
    </runtime> 
  </system.webServer> 
</configuration>

Это ошибка, которую я получаю от Джанго:

WebDriverException at /

Message: 'geckodriverL' executable needs to be in PATH. 

Request Method:     GET
Request URL:    http://site.azurewebsites.net/
Django Version:     2.2.6
Exception Type:     WebDriverException
Exception Value:    

Message: 'geckodriverL' executable needs to be in PATH. 

Exception Location:     /antenv/lib/python3.7/site-packages/selenium/webdriver/common/service.py in start, line 83
Python Executable:  /opt/python/3.7.4/bin/python3.7
Python Version:     3.7.4
Python Path:    

['/opt/python/3.7.4/bin',
 '/home/site/wwwroot',
 '/antenv/lib/python3.7/site-packages',
 '/opt/python/3.7.4/lib/python37.zip',
 '/opt/python/3.7.4/lib/python3.7',
 '/opt/python/3.7.4/lib/python3.7/lib-dynload',
 '/opt/python/3.7.4/lib/python3.7/site-packages']

Server time:    Fri, 18 Oct 2019 14:39:59 +0000

1 Ответ

0 голосов
/ 20 октября 2019

Как я знаю, согласно вики-странице Kudu песочница для веб-приложения Azure , из-за ограничений Win32k.sys (User32 / GDI32) вы не можете использовать что-либо с GDIкоторые включают в себя безголовые браузеры, такие как Chrome с Blink и Firefox с Gecko.

Чтобы исправить это, перейдите на использование виртуальной машины Azure или Azure WebApp в Linux (на основе Docker).

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