【问题标题】:Impossible import a module due to a dependency in Python由于 Python 中的依赖关系,无法导入模块
【发布时间】:2020-10-14 19:33:36
【问题描述】:

我正在尝试在 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。您对如何强制正确安装或避免此问题有任何想法吗? 提前致谢。

【问题讨论】:

  • 尝试删除 pandas 并安装新的 pandas 版本。如果您使用 anaconda 发行版,建议使用 conda。
  • 我尝试使用 !pip uninstall pandas -y 和 !conda remove pandas -y 但是,即使他们说没有更多的 pandas 模块,笔记本仍然说已经安装了 pandas 0.24.2。
  • 您是否在终端中查看过 pandas 版本。使用 pip show pandas。
  • 你的笔记本内核重启了吗?或者如果您已经导入了 pandas,请重新加载它?

标签: python pandas jupyter-notebook python-module gluon


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 2016-07-21
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2021-10-17
    相关资源
    最近更新 更多