Conda 未识别 Pip 包

Pip Package not being recognized in Conda

我有一个 Conda 环境,我在其中通过 pip(在环境中)安装了 KivyMD 包。

在一个 PyCharm 项目中,我从 KivyMD 文档中复制了示例代码。这个项目有我的 conda 环境作为解释器。解释器可以完美地处理这个(其他文件,使用其他包)和其他项目。但是当我尝试 运行 使用这个包的文件时,我总是遇到错误。

示例中的代码,我正在尝试 运行 (https://kivymd.readthedocs.io/en/latest/getting-started.html):

from kivymd.app import MDApp
from kivymd.uix.label import MDLabel


class MainApp(MDApp):
    def build(self):
        return MDLabel(text="Hello, World", halign="center")


MainApp().run()

“错误: ModuleNotFoundError:没有名为 'kivymd.app' 的模块; 'kivymd' 不是包

我已经尝试卸载并重新安装它,但遇到了同样的问题。该包在环境的“conda 列表”和 PyCharm 包面板中均正确显示。 Conda 使用的 Python 和 Pip 都位于环境文件夹内的文件夹中(使用“where”命令检查)。我正在使用 Windows 并再次检查我是否拥有最新的 Anaconda 版本。

我已经尝试 运行直接在命令行上(在 PyCharm 之外)打开文件,但也遇到了同样的问题。

我该如何解决这个问题?

首先我假设你使用的是python 3.8

其次,您是否首先按照此处的说明安装了 kivy:https://kivy.org/doc/stable/installation/installation-windows.html

我在 windows 上通过 conda 命令行完成了此操作,您可以通过常用方法或直接从 conda 导航器访问它。确保通过 运行ning

检查你想要 运行ning 的环境是否处于活动状态
conda info --envs

如果这 return 什么都没有,那么 conda 不工作,这应该 return 看起来像这样的东西,但每个环境名称后都有文件路径。

  • 表示活动环境,因此如果您想要的环境不活动,请使用它来激活它:

    conda 激活 envname

如果没有返回并在命令行中从您的 conda env 中执行此操作 然后 运行 在你的 conda env 中安装 kivyMD:

    git clone https://github.com/kivymd/KivyMD.git --depth 1
    cd KivyMD
    pip install .

如果您没有错误消息,请尝试编译您的代码以使其达到 运行,我建议您留在 env 激活的命令行中执行此操作。

我只能通过以下步骤让它工作:

  • (可能没有必要)在 Conda 中创建一个新环境
  • 从 conda forge 安装 Kivy(conda 安装)
  • 再次使用 pip 安装 Kivy(pip install)
  • 使用 pip 安装 KivyMD(pip 安装)
  • (可能没有必要)在 PyCharm
  • 中创建了一个新项目
  • 将新环境设置为解释器

存在一些冲突,Conda 无法识别 运行 项目的 pip 包(并且仅 运行)。显然它是通过两次安装所需的 Kivy 包来解决的,既作为 conda 又作为 pip 包。看来,至少在我的情况下,有必要“桥接”这两个安装,尽管我不知道为什么。