如何在 Azure Web 作业中 pip 安装扩展模块?

How to pip install extension modules in Azure web jobs?

我正在尝试安排 python 在 Azure 网络作业中使用扩展模块的脚本:

import sys

sitepackage = "D:\home\site\wwwroot\env\Lib\site-packages"
sys.path.append(sitepackage)

try:
    from bs4 import BeautifulSoup
    print("!!! BEAUTIFUL SOUP !!!")
except ImportError as e:
    print(e)

我在 'site-packages' 文件夹内的 (venv) 中安装了所有适当的扩展模块 pip:

但它无法 运行 因为它无法从 bs4 导入 beautifulsoup4:

error: "No module named bs4"

好的,我想通了这是我的解决方案,我将在下面详细解释每个步骤。

  1. 确保您的应用程序服务中有 python 的扩展。
  2. 为 3 个项目创建并压缩文件夹:your_file_name.py、run.bat 和 requirements.txt
  3. 使用新的压缩文件夹创建新的 Web 作业

第 1 步 - 确保您的应用服务中有 python 站点扩展:

  1. 导航到 Azure 中的应用服务
  2. 转到高级工具
  3. 点击站点扩展
  4. 安装您想要使用的 python 扩展程序

第 2 步 - 为 3 个项目创建并压缩文件夹:your_file_name.py、run.bat 和 requirements.txt

  • your_file_name.py 只是您想要 运行
  • 的 python 脚本
  • run.bat是你调用你的可执行文件的批处理文件。该文件应包含以下命令:第一个将 pip 安装您在 requirements.txt 中指定的第 3 方依赖项,第二个将执行您的脚本。 (编辑路径和文件名以匹配您的)
    D:\home\python364x86\python.exe -m pip install --upgrade -r D:\home\site\wwwroot\App_Data\jobs\triggered\webjobname\zippedfoldername\requirements.txt
    D:\home\python364x86\python.exe your_file_name.py
  • requirements.txt 是您要指定要使用的扩展模块甚至版本的地方。 (更多关于 requirements.txt here
beautifulsoup4==4.9.3
bs4==0.0.1
soupsieve==2.2
urlopen==1.0.0

第 3 步 - 使用新的压缩文件夹创建新的 Web 作业