【问题标题】:ModuleNotFoundError: No module named 'apscheduler'ModuleNotFoundError:没有名为“apscheduler”的模块
【发布时间】:2021-02-13 09:19:14
【问题描述】:

这可能是一个愚蠢的问题。

我不知道我为什么面对ModuleNotFoundError: No module named 'apscheduler',但我已经成功安装了APscheduler。

我已经尝试卸载它并重新安装特定版本的APscheduler,但它不起作用。 我也尝试在 virtualenv 上安装它,但效果不佳。

Python: |点数:20.3.3 |版本:3.7.3 操作系统: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()

记录如下:

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 已安装。

【问题讨论】:

  • 您运行的 python 与您安装模块时使用的 python 相同吗?有时一个设备可能安装了多个 python 解释器。模块可能安装在不同的 Python 上,而不是用于编码

标签: python-3.x apscheduler octoprint


【解决方案1】:

在使用 pip 安装模块时不要使用 sudo。 如果您已经设置了 virtualenv,请激活它,然后在不使用 sudo 的情况下安装依赖项

source {YOUR_VENV}/bin/activate    
pip install APscheduler==3.6.3

如果您看到您的回溯,则说明您使用的是来自 /home/pi/oprint/lib/python3.7/site-packages/ 的包,而您是在 /usr/lib/python3/dist-packages/ 上安装依赖项

否则,请验证您的 $PATH 和 $PYTHONPATH

【讨论】:

    【解决方案2】:

    这也被发布到 APScheduler 的错误跟踪器(作为功能请求不少于),它包含此处未在 SO 上提供的关键信息:sudo pip install APScheduler==3.6.3 的输出:

    从路径 (/usr/local/lib/python3.8/dist-packages) 可以看出,OP 在 Python 3.8 上安装它,然后尝试从 Python 3.7 导入它。

    解决方法是使用 Python 3.7 安装:python3.7 -m pip install APScheduler==3.6.3。但请注意,3.6.3 不是最新版本。

    【讨论】:

      【解决方案3】:

      已解决同样的问题。使用 pip3 安装不起作用。我从 PyPi 下载了 APScheduler 并直接安装,同样的问题。

      我有预感,我重新启动了我的笔记本电脑,它成功了!不知道为什么,我安装模块从来没有问题,但是重启后就可以了...试试看!

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 2022-01-07
      • 2017-12-14
      • 2020-12-10
      • 2021-09-02
      • 2020-10-10
      相关资源
      最近更新 更多