首页 > 解决方案 > 安装无法解决 ModuleNotFoundError: No module named 'mpl_finance'

问题描述

标题说明了一切。在尝试运行与此 matplotlib 烛台教程相关的代码时,出现错误:

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-5aa61276079d> in <module>
      2 import numpy as np
      3 import yfinance
----> 4 from mpl_finance import candlestick_ohlc
      5 import matplotlib.dates as mpl_dates
      6 import matplotlib.pyplot as plt

ModuleNotFoundError: No module named 'mpl_finance'

所以我安装了它并重新启动了内核,但仍然没有骰子。接下来,我在这里按照某人的建议安装了 mplfinance 并重新启动了内核,再次不行。我重启了,没有。我什至尝试安装“mlp_finance”作为此处的另一个答案,建议希望它是一些奇怪的名称冲突的东西,但它再次不起作用。为什么我不能导入 mplfinance?

加法202007311328:这是一个jupyter notebook;我可以在命令行上很好地安装和导入。使用“!pip3 install mpl_finance”从 jupyter 内部安装 mpl_finance 不会产生错误:

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: mpl_finance in /home/pi/src/pyfin1/pyfin1.env2/lib/python3.7/site-packages (0.10.1)
Requirement already satisfied: matplotlib in /home/pi/src/pyfin1/pyfin1.env2/lib/python3.7/site-packages (from mpl_finance) (3.2.1)
Requirement already satisfied: numpy>=1.11 in /home/pi/src/pyfin1/pyfin1.env2/lib/python3.7/site-packages (from matplotlib->mpl_finance) (1.18.4)
Requirement already satisfied: cycler>=0.10 in /home/pi/src/pyfin1/pyfin1.env2/lib/python3.7/site-packages (from matplotlib->mpl_finance) (0.10.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /home/pi/src/pyfin1/pyfin1.env2/lib/python3.7/site-packages (from matplotlib->mpl_finance) (2.4.7)
Requirement already satisfied: python-dateutil>=2.1 in /home/pi/src/pyfin1/pyfin1.env2/lib/python3.7/site-packages (from matplotlib->mpl_finance) (2.8.1)
Requirement already satisfied: kiwisolver>=1.0.1 in /home/pi/src/pyfin1/pyfin1.env2/lib/python3.7/site-packages (from matplotlib->mpl_finance) (1.2.0)
Requirement already satisfied: six in /home/pi/src/pyfin1/pyfin1.env2/lib/python3.7/site-packages (from cycler>=0.10->matplotlib->mpl_finance) (1.14.0)

但是当我尝试导入它时会发生同样的错误。

编辑 2020071343 这是我安装 mplfinance 然后使用它的图像。有什么突然出现在你身上吗? jupyter notebook 安装和导入 mplfinance 的序列

已解决,请参阅https://github.com/jupyter/notebook/issues/3311

标签: pythonmatplotlib

解决方案


根据我的经验,除非模块拼写错误(根据上面的屏幕截图,情况似乎并非如此),否则ModuleNotFoundError通常表明安装位置不在导入模块的搜索路径中。

因为这在 ipython 下对你有用,所以有一个简单的方法来找到你的系统安装 mplfinance 的位置:

In [1]: import mplfinance as mpf
In [2]: mpf.__file__

找出您的系统在哪里搜索模块

import sys
print(sys.path)

ipython如果你在你的和你的两者中运行上述jupyter notebook,我猜你会发现你sys.path的ipython 安装与你的 jupyter 笔记本不同(并且笔记本的搜索路径不包括安装位置)。这可能是由于各种原因,例如环境变量、安装 jupyter 的位置、您是否正在运行虚拟和/或 conda 环境等。您可以在此处阅读有关模块搜索路径的更多信息:https ://docs.python.org/ 3/tutorial/modules.html#the-module-search-path

请注意,如果您使用的是虚拟环境或 conda 环境,则必须 (1)在安装之前mplfinance激活环境,以及 (2) 在运行 jupyter notebook 之前激活环境。可能还需要在激活的环境中单独安装 jupyter notebook。

让我知道以上是否为您提供了足够的信息来解决问题。如果没有,请提供上述命令的输出,我会尽我所能提供进一步的帮助。一切顺利。——丹尼尔


推荐阅读