【问题标题】:How to pip install extension modules in Azure web jobs?如何在 Azure Web 作业中安装扩展模块?
【发布时间】:2021-05-31 05:06:14
【问题描述】:

我正在尝试在 Azure Web 作业中安排一个使用扩展模块的 Python 脚本:

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)

我在我的“站点包”文件夹内的 (venv) 中安装了所有适当的扩展模块 pip:

但是因为无法从bs4导入beautifulsoup4而运行失败:

error: "No module named bs4"

【问题讨论】:

    标签: python azure-webjobs python-venv python-3.9 extension-modules


    【解决方案1】:

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

    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 作业

    【讨论】:

    • 谢谢!它有效:-) 不需要为requirements.txt 路径指定完整路径,-r requirements.txt 就足够了。我在 Azure 门户 Home > <App Service Name> > Extensions > Python x.x.x 中有扩展管理。您可以通过应用服务 FTPS 重新上传 WebJob 文件,这可能对其他人有用。
    猜你喜欢
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    相关资源
    最近更新 更多