it might be a silly problem.
I have no idea about why I am facing ModuleNotFoundError: No module named 'apscheduler'
but I have already successfully installed APscheduler.
I have tried uninstalling it and re-install the specific version of APscheduler, but it didn't work. I also tried installing it on virtualenv, but it didn't work as well.
Python: | pip: 20.3.3 | version: 3.7.3 OS: Linux (Ubuntu 20.04)
from __future__ import absolute_import
import octoprint.plugin
from apscheduler.schedulers.background import BackgroundScheduler
from influxdb_client import InfluxDBClient, Point
import requests
def __init__(self):
super().__init__()
self.backgroundScheduler = BackgroundScheduler()
logging as follows:
Traceback (most recent call last):
File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/plugin/core.py", line 1298, in _import_plugin
module = _load_module(module_name, spec)
File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/plugin/core.py", line 69, in _load_module
return imp.load_module(name, f, filename, details)
File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/vendor/imp.py", line 238, in load_module
return load_package(name, filename)
File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/vendor/imp.py", line 212, in load_package
return _load(spec)
File "<frozen importlib._bootstrap>", line 696, in _load
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_CMfgDataAcquisition/__init__.py", line 13, in <module>
from apscheduler.schedulers.background import BackgroundScheduler
ModuleNotFoundError: No module named 'apscheduler'
enter image description here
APscheduler == 3.6.3 has been installed.
This was also posted to APScheduler's bug tracker (as a feature request no less), and it contained critical information not given here on SO: the output of sudo pip install APScheduler==3.6.3
:
As you can see from the path (/usr/local/lib/python3.8/dist-packages), OP was installing it on Python 3.8 and then trying to import it from Python 3.7.
The solution is to use Python 3.7 to install it: python3.7 -m pip install APScheduler==3.6.3
. Note, however, that 3.6.3 is not the latest release.
Don't use sudo when installing modules with pip. If you have already setup a virtualenv, activate it and then install your dependencies without sudo
source {YOUR_VENV}/bin/activate
pip install APscheduler==3.6.3
If you see your traceback, you're using packages from /home/pi/oprint/lib/python3.7/site-packages/
whereas you're installing your dependencies on /usr/lib/python3/dist-packages/
Otherwise, verify your $PATH and $PYTHONPATH
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With