Hi all. I’m running AppDaemon in docker, first time using it so this is probably a silly mistake. I want to use beautifulsoup4, so I have added it to requirements.txt:
beautifulsoup4
Running pip3 install beautifulsoup4 confirms that the package is already installed:
/usr/src/app # pip3 install beautifulsoup4
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.8/site-packages (4.9.1)
Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.8/site-packages (from beautifulsoup4) (2.0.1)
WARNING: You are using pip version 20.0.2; however, version 20.2 is available.
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
And I’m importing it in my script (the actual body of the script is a mess of unfinished stuff and arbitrary values being passed as proof of concept, so please ignore it unless it’s directly relevant):
import hassapi as hass
import datetime
import beautifulsoup4
#
# Hello World App
#
# Args:
#
class bins(hass.Hass):
def initialize(self):
# create object 'monday'
# monday = datetime.weekday(0)
time = datetime.time(22, 2, 0)
# callback to run script when it is monday
# self.run_weekly(self.run_weekly_callback, monday)
self.run_daily(self.run_daily_callback, time)
self.log("Bins succesfully initialised")
def run_daily_callback(self, kwargs):
req = Request('https://XXXXXXXXXX')
self.set_state("sensor.bins", state="03-08-2020")
self.log("Bin sensor updated")
But when AppDaemon tries to initialise the app, it throws a ModuleNotFoundError relating to beautifulsoup4:
2020-08-02 22:31:01.111313 INFO AppDaemon: Reloading Module: /conf/apps/bin.py
2020-08-02 22:31:01.111527 INFO AppDaemon: Loading App Module: bin
2020-08-02 22:31:01.113523 WARNING Error: ------------------------------------------------------------
2020-08-02 22:31:01.113635 WARNING Error: Unexpected error loading module: /conf/apps/bin.py:
2020-08-02 22:31:01.113715 WARNING Error: ------------------------------------------------------------
2020-08-02 22:31:01.114332 WARNING Error: Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/appdaemon/app_management.py", line 566, in read_app
importlib.reload(self.modules[module_name])
KeyError: 'bin'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/appdaemon/app_management.py", line 788, in check_app_updates
await utils.run_in_executor(self, self.read_app, mod["name"], mod["reload"])
File "/usr/local/lib/python3.8/site-packages/appdaemon/utils.py", line 276, in run_in_executor
response = future.result()
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.8/site-packages/appdaemon/app_management.py", line 571, in read_app
self.read_app(file)
File "/usr/local/lib/python3.8/site-packages/appdaemon/app_management.py", line 580, in read_app
self.modules[module_name] = importlib.import_module(module_name)
File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/conf/apps/bin.py", line 3, in <module>
import beautifulsoup4
ModuleNotFoundError: No module named 'beautifulsoup4'
2020-08-02 22:31:01.114430 WARNING Error: ------------------------------------------------------------
2020-08-02 22:31:01.114508 WARNING AppDaemon: Removing associated apps:
2020-08-02 22:31:01.114592 WARNING AppDaemon: bins
Does anyone have an idea of why this is happening or what I can do to fix it?
I’ve even copy-pasted the package name from the docs to make sure I’m not spelling beautiful wrong.