I'm trying to schedule a python script that uses an extension module in an Azure web job:
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)
I have all the appropriate extension modules pip installed in my (venv) inside of my 'site-packages' folder:
But it fails to run because it cannot import beautifulsoup4 from bs4:
error: "No module named bs4"
Okay, so I figured it out here's my solution and I'll explain each step in detail down below.
STEP 1 - Make sure you have python site extension in your App Service:
STEP 2 - Create and zip a folder for 3 items: your_file_name.py, run.bat, and requirements.txt
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
beautifulsoup4==4.9.3
bs4==0.0.1
soupsieve==2.2
urlopen==1.0.0