首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python:"ImportError: DLL加载失败:找不到指定模块。“导入ffn (python金融库)时出现问题

Python:"ImportError: DLL加载失败:找不到指定模块。“导入ffn (python金融库)时出现问题
EN

Stack Overflow用户
提问于 2018-07-10 12:22:22
回答 1查看 7.6K关注 0票数 1

如果确实存在一个线程已经解决了这个问题(我花了几个小时在多个站点和GitHubs中搜索似乎导致问题的依赖项),那么很抱歉,但是每个解决方案似乎都是针对某某试图使用的特定库的。

我一直在处理定量金融/算法交易,并一直试图导入特定的库ffn,然而,根据问题标题,我收到了一条有点冗长的错误消息,详细说明了一个ImportError,以及我应该如何遗漏似乎存在的某些特定的依赖项。老实说,这可能只是一个依赖异常(我遗漏了ffn依赖项的依赖项),但我已经尽了最大努力排除这种可能性。

下面是完整的错误:

代码语言:javascript
复制
ImportError                               Traceback (most recent call last)
    <ipython-input-2-01bc82d8cf41> in <module>()
      2 import numpy as np
      3 import pandas as pd
----> 4 import ffn
      5 import math

~\PycharmProjects\buff\venv\lib\site-packages\ffn\__init__.py in <module>()
----> 1 from . import core
      2 from . import data
      3 
      4 from .data import get
      5 #from .core import year_frac, PerformanceStats, GroupStats, merge

~\PycharmProjects\buff\venv\lib\site-packages\ffn\core.py in <module>()
      8 from pandas.core.base import PandasObject
      9 from tabulate import tabulate
---> 10 import sklearn.manifold
     11 import sklearn.cluster
     12 import sklearn.covariance

~\PycharmProjects\buff\venv\lib\site-packages\sklearn\__init__.py in <module>()
    132 else:
    133     from . import __check_build
--> 134     from .base import clone
    135     __check_build  # avoid flakes unused variable error
    136 

~\PycharmProjects\buff\venv\lib\site-packages\sklearn\base.py in <module>()
     11 from scipy import sparse
     12 from .externals import six
---> 13 from .utils.fixes import signature
     14 from . import __version__
     15 

~\PycharmProjects\buff\venv\lib\site-packages\sklearn\utils\__init__.py in <module>()
      9 
     10 from .murmurhash import murmurhash3_32
---> 11 from .validation import (as_float_array,
     12                          assert_all_finite,
     13                          check_random_state, column_or_1d, check_array,

~\PycharmProjects\buff\venv\lib\site-packages\sklearn\utils\validation.py in <module>()
     16 
     17 from ..externals import six
---> 18 from ..utils.fixes import signature
     19 from .. import get_config as _get_config
     20 from ..exceptions import NonBLASDotWarning

~\PycharmProjects\buff\venv\lib\site-packages\sklearn\utils\fixes.py in <module>()
    142     from ._scipy_sparse_lsqr_backport import lsqr as sparse_lsqr
    143 else:
--> 144     from scipy.sparse.linalg import lsqr as sparse_lsqr  # noqa
    145 
    146 

~\PycharmProjects\buff\venv\lib\site-packages\scipy\sparse\linalg\__init__.py in <module>()
    112 from __future__ import division, print_function, absolute_import
    113 
--> 114 from .isolve import *
    115 from .dsolve import *
    116 from .interface import *

~\PycharmProjects\buff\venv\lib\site-packages\scipy\sparse\linalg\isolve\__init__.py in <module>()
      4 
      5 #from info import __doc__
----> 6 from .iterative import *
      7 from .minres import minres
      8 from .lgmres import lgmres

~\PycharmProjects\buff\venv\lib\site-packages\scipy\sparse\linalg\isolve\iterative.py in <module>()
      8 import numpy as np
      9 
---> 10 from . import _iterative
     11 
     12 from scipy.sparse.linalg.interface import LinearOperator

ImportError: DLL load failed: The specified module could not be found.

这条特别的消息来自一个失败的Jupyter笔记本试用版(IPython控制台),尽管我曾尝试通过一个“普通的”Python3文件运行相同的代码,但都得到了相同的消息。正如我之前所推断的,我已经下载/正确安装了消息中提到的所有依赖项(sklearnscipy是该错误提到的ffn之外唯一的问题子项)。最让我困惑的是,依赖项/ ffn引用中的这些导入语句的所有内容都是它们应该并且(据我所知)是可访问的。

也许我应该更深入地研究这一点,但对我来说唯一有意义的是,我有错误的这些库的版本(大多数情况下,这些库维护得很好,并且更新得比较频繁),而且ffn及其依赖项所需的某些功能已经被弃用,不再存在。然而,当我花了30秒来确定sklearn.manifold是否存在时,这一理论被证明是错误的(至少部分地),显然令我惊讶的是,它确实存在。我还检查了集成开发环境的库管理器/解释器设置菜单,一切都是最新的(我使用的是PyCharm CE)。

简而言之:为什么我收到这条消息时,我似乎有它正在搜索的一切/它到底是什么意思,我如何解决这个问题,以便我可以使用我想要使用的库?

如果这真的有帮助,这里有一个总结:

所有库/依赖项都是最新的(PyCharm维护每个库/依赖项当前的版本,尽管我必须手动进入才能告诉它执行更新)。

同样,我使用的是PyCharm CE 2018 (最新版本)。

这是来自Jupyter notebook的整个单元格,它产生错误(这也是notebook中的所有内容):

from pylab import * import numpy as np import pandas as pd import ffn import math

下面是产生相同错误的Python文档的所有内容(实际上是相同的代码):

import ffn import math import pandas as pd, numpy as np import datetime data1 = ffn.get('agg, hyg, spy, eem, efa', start='2018-01-01', end='2018-02-02') print(data1.head())

我运行的是64位Windows 10

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-10 12:31:20

您的代码无法定位您的模块。在Jupyter Notebook中,你可以这样做。'PYTHONPATH'是在python中定位定制模块的环境变量。现在你的模块已经在你的项目目录中了,所以你需要确保你的解释器可以找到你的文件。

基本上,您需要在Jupyter Notebook中设置路径来定位导入的用户定义模块。

“要在jupyter笔记本中设置env变量,只需使用"%”魔术命令,%env%set_env,例如%env MY_VAR=MY_VALUE%env MY_VAR MY_VALUE。(单独使用%env可打印出当前环境变量。)

请参阅:How to set env variable in Jupyter notebook

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51257233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档