我正在尝试使用以下命令通过 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
:
这是我第一次尝试创建这样的包,我一直在参考下面的几个来源,但希望社区能够提供一些关于我所缺少的内容的见解。谢谢。
问题的原因是 setup.cfg 中
package_dir
和 packages
行上方的语法错误,如果使用带有“src”的包布局,这很重要。在我修复错误之前,我的包在某些情况下安装和导入得很好,但在其他情况下则不然
我可以通过将
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 *
正如最上面的答案所指出的,这是由于 git 存储库中的安装文件存在问题。如果您的项目在 setup.py 中导入模块,则可能是问题所在。
请参阅 https://github.com/manchenkoff/openapi3-parser/issues/46 中建议的解决方案以获得解决方案。