Closed ghost closed 1 year ago
Plugin: nonebot-plugin-starzai-memu
⚠️ 在发布检查过程中,我们发现以下问题:
⚠️ 无法获取到插件元数据。请确保插件正常加载。 ⚠️ 插件加载测试未通过。测试输出
插件 nonebot-plugin-starzai-memu 的信息如下:
name : nonebot-plugin-starzai-memu
version : 0.1.3
description : 星崽BOt-菜单
dependencies
- nonebot2 *
插件 nonebot-plugin-starzai-memu 依赖的插件如下:
插件 nonebot_plugin_starzai_memu 加载出错:
08-30 07:57:52 [SUCCESS] nonebot | NoneBot is initializing...
08-30 07:57:52 [INFO] nonebot | Current Env: prod
08-30 07:57:52 [ERROR] nonebot | Failed to import "nonebot_plugin_starzai_memu"
Traceback (most recent call last):
File "/home/runner/work/nonebot2/nonebot2/plugin_test/nonebot-plugin-starzai-memu-nonebot_plugin_starzai_memu-test/runner.py", line 15, in <module>
plugin = load_plugin("nonebot_plugin_starzai_memu")
File "/home/runner/work/nonebot2/nonebot2/plugin_test/nonebot-plugin-starzai-memu-nonebot_plugin_starzai_memu-test/.venv/lib/python3.10/site-packages/nonebot/plugin/load.py", line 39, in load_plugin
return manager.load_plugin(module_path)
> File "/home/runner/work/nonebot2/nonebot2/plugin_test/nonebot-plugin-starzai-memu-nonebot_plugin_starzai_memu-test/.venv/lib/python3.10/site-packages/nonebot/plugin/manager.py", line 142, in load_plugin
module = importlib.import_module(name)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nonebot_plugin_starzai_memu'
✅ 项目 nonebot-plugin-starzai-memu 已发布至 PyPI。
💡 如需修改信息,请直接修改 issue,机器人会自动更新检查结果。 💡 当插件加载测试失败时,请发布新版本后在当前页面下评论任意内容以触发测试。
♻️ 评论已更新至最新检查结果
💪 Powered by NoneFlow
?
/能力中心
请检查setup.py
依赖包设置。
请检查依赖包设置。
setup.py
您好,我发现我的开发目录下并没有setup.py,根据新手教程,我使用的是nb脚手架创建的项目,并没有setup.py。请问如何处理。
这有一个发布到 pypi 的 工作流,不需要 setup.py。
请检查依赖包设置。
setup.py
您好,我发现我的开发目录下并没有setup.py,根据新手教程,我使用的是nb脚手架创建的项目,并没有setup.py。请问如何处理。
抱歉,我在之前没有详细阅读你的代码,你的项目中确实不包含setup.py
,你使用了Pypi工作流
API推送至Pypi
。
你可以尝试以下方案:
在你的项目目录表层新建setup.py
,在setup()
函数中,使用install_requires
参数来列出项目所需的依赖包及其版本。例如:
setup(
name='nonebot-plugin-starzai-memu',
version='0.1.3',
install_requires=[
'nonebot2',
# 其它依赖项...
],
# 其它内容...
)
就算Github Actions
再牛逼我也能用原始方法解决问题
这是旧的打包方式,但至少能用
在你的GitHub Actions
工作流程中,你可以尝试使用pip install
命令安装项目的依赖,例如:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install wheel twine
pip install -r requirements.txt # 如果使用了requirements.txt文件,否则请使用pip install nonebot2 [其它依赖...]
防止是某些必须导入的依赖导致的打包错误。
依赖的声明通常是在你的项目根目录下的pyproject.toml
文件或者requirements.txt
文件中定义的。这些文件用来告诉Python
包管理器需要安装哪些依赖包。
pyproject.toml
中声明依赖 (使用 PEP 517/518 标准的项目)
[build-system]
requires = ["setuptools>=42", "wheel", "pep517", "nonebot2"] # 只是个示例
build-backend = "setuptools.build_meta"
Github Actions
工作流
如果你对Github Actions
的需求并不强烈,你可以采用setup.py
的方式来打包上传你的项目。
pip install twine
python setup.py sdist bdist_wheel
twine upload dist/*
在setup.py
中设置依赖项的方法参考方案1。
这有一个发布到 pypi 的 工作流,不需要 setup.py。
请检查依赖包设置。
setup.py
您好,我发现我的开发目录下并没有setup.py,根据新手教程,我使用的是nb脚手架创建的项目,并没有setup.py。请问如何处理。
抱歉,我在之前没有详细阅读你的代码,你的项目中确实不包含
setup.py
,你使用了Pypi工作流
API推送至Pypi
。你可以尝试以下方案:
- 在你的项目目录表层新建
setup.py
,在setup()
函数中,使用install_requires
参数来列出项目所需的依赖包及其版本。例如:setup( name='nonebot-plugin-starzai-memu', version='0.1.3', install_requires=[ 'nonebot2', # 其它依赖项... ], # 其它内容... )
~就算~
Github Actions
~再牛逼我也能用原始方法解决问题~ 这是旧的打包方式,但至少能用
- 在你的
GitHub Actions
工作流程中,你可以尝试使用pip install
命令安装项目的依赖,例如:- name: Install dependencies run: | python -m pip install --upgrade pip pip install wheel twine pip install -r requirements.txt # 如果使用了requirements.txt文件,否则请使用pip install nonebot2 [其它依赖...]
防止是某些必须导入的依赖导致的打包错误。
依赖的声明通常是在你的项目根目录下的
pyproject.toml
文件或者requirements.txt
文件中定义的。这些文件用来告诉Python
包管理器需要安装哪些依赖包。
- 在
pyproject.toml
中声明依赖 (使用 PEP 517/518 标准的项目)[build-system] requires = ["setuptools>=42", "wheel", "pep517", "nonebot2"] # 只是个示例 build-backend = "setuptools.build_meta"
- 放弃
Github Actions
工作流 如果你对Github Actions
的需求并不强烈,你可以采用setup.py
的方式来打包上传你的项目。pip install twine python setup.py sdist bdist_wheel twine upload dist/*
在
setup.py
中设置依赖项的方法参考方案1。
使用setup.py后1,仍旧报错
提交检查
使用setup.py后1,仍旧报错
请检查setup.py
是否符合规范,同时注意,python setup.py sdist bdist_wheel
是使用setup.py
打包的指令,请注意在Github Actions
的yml
文件中修改。
如果依然出现错误,希望你能给出详细的报错内容。
如果你的项目的确无法使用setup.py
打包,建议使用pyproject.toml
作为打包声明文件。下面是一个示例:
[tool.poetry]
name = "包名"
description = "简介"
authors = ["作者"]
readme = "README.md"
homepage = "主页"
repository = "仓库"
documentation = "文档"
keywords = ["关键词",]
license = "开源证书"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: Apache Software License", #这个是开源证书请自行替换
"Operating System :: OS Independent",
]
[tool.poetry.dependencies]
python = "^3.6"
nonebot2 = "*"
nonebot-adapter-onebot = "*"
# ...其它依赖
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
讲该文件命名为pyproject.toml
,放置在项目表层目录中,同时,注意以下内容的修改
使用pip
安装poetry
:
pip install poetry
安装完成后进入目录,使用poetry
打包:
poetry build
根据以上流程,修改Github Actions
的配置文件,保证工作流的正常运作。
如果你的项目的确无法使用
setup.py
打包,建议使用pyproject.toml
作为打包声明文件。下面是一个示例:[tool.poetry] name = "包名" description = "简介" authors = ["作者"] readme = "README.md" homepage = "主页" repository = "仓库" documentation = "文档" keywords = ["关键词",] license = "开源证书" classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: Apache Software License", #这个是开源证书请自行替换 "Operating System :: OS Independent", ] [tool.poetry.dependencies] python = "^3.6" nonebot2 = "*" nonebot-adapter-onebot = "*" # ...其它依赖 [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"
讲该文件命名为
pyproject.toml
,放置在项目表层目录中,同时,注意以下内容的修改使用
pip
安装poetry
:pip install poetry
安装完成后进入目录,使用
poetry
打包:poetry build
根据以上流程,修改
Github Actions
的配置文件,保证工作流的正常运作。 你好,根据此教程,在编译时出现报错 Building nonebot-plugin-starzai-memu (0.0.4)
No file/folder found for package nonebot-plugin-starzai-memu
No file/folder found for package nonebot-plugin-starzai-memu
看起来你对Python
打包几乎没有涉猎。你提供的信息过少,我无法判断你的问题。但是以下是出现以上情况的可能性以及解决方案:
项目结构问题:
确保你的项目结构符合 Python 包的标准结构。你的项目目录中应该包含一个与你的库名相匹配的文件夹,该文件夹内包含一个 __init__.py
文件。例如:
nonebot_plugin_starzai_memu/
├── __init__.py
└── ...
版本号问题:
确保在 pyproject.toml
文件中正确指定了你的库的版本号,如:
[tool.poetry]
name = "nonebot-plugin-starzai-memu"
version = "0.0.4"
# 其他配置...
依赖项问题:
如果你的库依赖其他包,确保在 pyproject.toml
中正确声明它们。
值的注意的是,nonebot-plugin-starzai-memu
看起来应该是你将要打包的项目,它不应该被声明在依赖项中。
打包配置问题: 如果你想使用 Poetry 打包你的库,确保在 pyproject.toml
中有以下配置:
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
并且你的项目根目录下有 pyproject.toml
文件。
以下是一个示例项目的结构:
your_package_name/
├── your_module.py
└── __init__.py
pyproject.toml
尝试使用被推荐的pdm
:
可以试试 pdm,对应的pyproject.toml示例
actions工作流示例(走trusted publisher)
如果你仍然遇到问题,请提供更多关于报错或项目结构的详细信息。
插件是否更新?
插件是否更新?
目前BOT反馈仍然报错无法加载,Bot正常
你插件打包仍然有问题,请检查
PyPI 项目名
nonebot-plugin-starzai-memu
插件 import 包名
nonebot_plugin_starzai_memu
标签
[]
插件配置项
No response