首页 > 解决方案 > 由于 Python 中的依赖关系,无法导入模块

问题描述

我正在尝试在 Jupyter Notebook 中导入 gluonts,因此我通过以下方式安装了模块:

!pip install gluonts

然后我尝试从模块中导入一个类:

from gluonts.trainer import Trainer

但我得到了这个例外:

ContextualVersionConflict                 Traceback (most recent call last)
<ipython-input-3-d4623db96f76> in <module>()
----> 1 from gluonts.trainer import Trainer
      2 from gluonts.dataset.common import ListDataset
      3 from gluonts.model.deepar import DeepAREstimator

~/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/gluonts/__init__.py in <module>()
     21 
     22 try:
---> 23     __version__ = get_distribution(__name__).version
     24 except DistributionNotFound:
     25     __version__ = "0.0.0-unknown"

...

~/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages/pkg_resources/__init__.py in resolve(self, requirements, env, installer, replace_conflicting, extras)
    781                 # Oops, the "best" so far conflicts with a dependency
    782                 dependent_req = required_by[req]
--> 783                 raise VersionConflict(dist, req).with_context(dependent_req)
    784 
    785             # push the new requirements onto the stack

ContextualVersionConflict: (pandas 0.24.2 (/home/ec2-user/anaconda3/envs/mxnet_p36/lib/python3.6/site-packages), Requirement.parse('pandas~=1.0'), {'gluonts'})

问题是它想要一个更新版本的熊猫所以我这样做了:

!pip install -Iv pandas==1.0.5

但是,检查版本:

import pandas as pd
print(pd.__version__)

打印出来的不是1.0.5,而是0.24.2。您对如何强制正确安装或避免此问题有任何想法吗?提前致谢。

标签: pythonpandasjupyter-notebookpython-modulegluon

解决方案


您遇到的问题是您在导入后卸载了熊猫,因此即使您导入了新安装的模块,笔记本也保留了旧版本。要解决这个问题,你必须在删除旧的 pandas 并安装新版本后重新启动你的笔记本。永久解决此问题的另一种方法是,在笔记本启动后,在每次导入之前卸载并更新 pandas。在阅读评论并尝试他们所说的之后,我发现了这一点。


推荐阅读