`ModuleNotFoundError`

问题描述 投票:0回答:3

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

featurestore
包:

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>==<version>
语法,但它似乎引用 git commit 作为其“版本”:

根据下面的屏幕截图,我相信存储库的目录设置适合 Python 包。

此软件包的安装与我安装的其他软件包之间的一个显着区别是,似乎只为我的

...dist-info
软件包安装了
featurestore
文件夹,而每个其他已安装的软件包都包含实际的软件包目录,此外
...dist-info
文件夹。使用
ls ~/.local/lib/python3.6/site-packages

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

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

从 git repo 分支进行 pip 安装

python python-3.x package
3个回答
2
投票

问题的原因是 setup.cfg 中

package_dir
packages
行上方的语法错误,如果使用带有“src”的包布局,这很重要。在我修复错误之前,我的包在某些情况下安装和导入得很好,但在其他情况下则不然


0
投票

我可以通过将

featurestore
目录向上移动一级并删除
src
目录来解决此问题。根据最重要的答案here,我可能还可以通过直接在
__init__.py
目录中添加一个
src
文件来解决这个问题。但对于我的需要来说,
src
确实是一个不必要的水平。


新包目录设置:


代码在终端中运行:

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

0
投票

正如最上面的答案所指出的,这是由于 git 存储库中的安装文件存在问题。如果您的项目在 setup.py 中导入模块,则可能是问题所在。

请参阅 https://github.com/manchenkoff/openapi3-parser/issues/46 中建议的解决方案以获得解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.