【问题标题】:Kedro - Can't instantiate abstract class ProjectContext with abstract methods project_name, project_versionKedro - 无法使用抽象方法 project_name、project_version 实例化抽象类 ProjectContext
【发布时间】:2021-01-08 05:54:17
【问题描述】:

我是 kedro 的新手,使用命令 kedro jupyter lab 从 Kedro 打开 Jupyter Lab/Notebook 时遇到问题。 错误是:

TypeError:无法使用抽象方法 project_name、project_version 实例化抽象类 ProjectContext 使用 --verbose 运行以查看完整的异常 错误:无法使用环境None 加载 Kedro 上下文。确保它存在于项目配置中。 错误:无法使用抽象方法 project_name、project_version 实例化抽象类 ProjectContext

我一直按照kedro official docs website 中的步骤进行操作,但没有成功。出于复制目的,以下是我执行的步骤:

  1. 创建新的 conda 环境:conda create --name myenv
  2. 激活环境:source activate myenv
  3. 使用 pyspark 启动器创建新的 kedro 项目:kedro new --starter=pyspark
  4. 转到新创建的项目文件夹:cd my_project
  5. 安装要求:kedro install
  6. 打开 jupyter 实验室:kedro jupyter lab --no-browser

第 6 步哪里给了我错误。 作为旁注,我不得不两次执行第 5 点,因为第一次给了我不兼容的错误,但后来我再次执行它并且它有效。

如果我没有提供太多细节,请提前抱歉,因为这是第一次在 stackoverflow 中询问。有需要的可以问我,我很乐意为你解答。

谢谢。

【问题讨论】:

  • 在第 1 步之后,您是否按照文档中的说明激活了 conda 环境? conda activate myenv
  • 是的。我会更新我的帖子

标签: python jupyter-notebook jupyter jupyter-lab kedro


【解决方案1】:

按照您的步骤操作时,我无法重现该问题,但是我注意到您的旅程中缺少一些重要步骤。这对我有用:

  1. 创建新的 conda 环境:conda create --name myenv **python=3.6**
  2. 激活环境:conda activate myenv
  3. myenv:pip install kedro中安装Kedro
  4. 使用 pyspark 启动器创建新的 kedro 项目:kedro new --starter=pyspark
  5. 进入新创建的项目文件夹:cd my_project
  6. 安装要求:kedro install
  7. 打开 jupyter 实验室:kedro jupyter lab --no-browser

对于第 1 步,具体说明 Python 版本很重要,因为 Anaconda 可以在您不知情的情况下创建 Kedro 默认不支持的 Python 环境。

并且需要第 3 步,因为如果您在基本 Anaconda 环境中安装了 Kedro,但您尝试在当前选择的环境中使用它,您可能会遇到一些难以调试的问题。请注意,这不是 Kedro 特有的东西,而是 Anaconda 特有的东西——我见过很多人在使用 pylint 并忘记在他们的新环境中安装它时被这个问题困扰。

我希望这可以帮助您成功地重新创建项目。

【讨论】:

  • 感谢您的回复,但是当我尝试您提出的解决方案时,它仍然不适合我。你在做 kedro install 时是否也有不兼容的问题?这很奇怪,因为创建一个新环境会创建一个空白环境,但不知何故它会出现这个不兼容的问题。你介意最初告诉我你的 requirements.txt 中的包是什么吗?谢谢。
  • 如果conda的环境安装正确(使用正确的python版本)并且里面安装了kedro,应该没有兼容性问题。据我所知,我只能猜测您的 Kedro 安装可能有问题。您能否再次检查您是否拥有正确的 python 版本,并且您的 kedro 可执行文件指向正确的环境?您可以通过调用which kedrowhich pythonpython -Vkedro -V 来做到这一点(以确保您拥有正确的版本)。您使用的是什么操作系统?
  • 只是在运行kedro install 时设法重现了依赖项中的不兼容性,而这些依赖项是针对pytest 的。你也一样吗?如果是这样,解决此问题的方法是查看src/requirements.in 并删除pytest 版本的上限,然后再次运行kedro install,这应该可以解决它。如果这不能为您解决问题,您介意在此处分享您收到的错误消息吗?
猜你喜欢
  • 2015-10-06
  • 2017-02-05
  • 2015-08-04
  • 1970-01-01
  • 2019-02-11
  • 1970-01-01
  • 2013-03-07
相关资源
最近更新 更多