繁体   English   中英

`ModuleNotFoundError` 当从 Git 导入 Python Package

[英]`ModuleNotFoundError` When Importing Python Package from Git

我正在尝试使用以下命令通过 ssh 从私有 GitHub 存储库安装featurestore存储区 package:

pip3 install -U git+ssh://git@dsghe.<mydomain>/bshelton/package_test.git@master#egg=featurestore

安装成功,如下图: 在此处输入图像描述

但是当尝试from featurestore import *运行时,我收到ModuleNotFoundError: No module named 'featurestore'错误。

使用pip3 freeze ,我看到 package 已安装,但不是我期望的<package>==<version>语法,但它似乎引用 git 提交而不是它的“版本”:

在此处输入图像描述

根据下面的屏幕截图,我相信 repo 的目录设置适合 Python package。

在此处输入图像描述

这个包的安装和我安装的其他包之间的一个明显区别是,它似乎只为我的featurestore库 package 安装了...dist-info文件夹,而所有其他安装的 package 包括实际的 package 目录,除了...dist-info文件夹。 使用ls ~/.local/lib/python3.6/site-packages

在此处输入图像描述

这是我第一次尝试创建这样的 package,我一直在参考以下几个来源,但希望社区能提供一些关于我所缺少的内容的见解。 谢谢。

https://packaging.python.org/tutorials/packaging-projects/

pip 从 git repo 分支安装

我的问题的原因原来是我的 setup.cfg 中package_dirpackages行上方的语法错误,如果使用带有“src”的 package 布局,这很重要。 在我修复错误之前,我的 package 在某些情况下安装和导入正常,但在其他情况下则不然

我可以通过将我的featurestore目录上移一级并删除src目录来解决这个问题。 根据这里的最佳答案,我可能也可以通过直接在src目录中添加一个__init__.py文件来解决它。 但是对于我的需要, src确实是一个不必要的级别。


新的 package 目录设置:

在此处输入图像描述


代码在终端中运行:

 :pip3 install -U git+ssh.//git@dsghe.<mydomain>/bshelton/package_test.git@master#egg=featurestore from featurestore.featurestore import *

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM