你好,我正在尝试构建一个python包,我有以下文件夹结构
.
├── Dockerfile
├── entrypoint.sh
├── Pipfile
├── Pipfile.lock
├── setup.py
└── vms-backup
├── commands
│ ├── __init__.py
│ ├── to_csv.py
│ ├── to_sql.py
│ └── upload_to_s3.py
└── __init__.py
setup.py包含以下代码:
from setuptools import setup, find_packages
import pipfile
pf = pipfile.load("Pipfile")
setup(
name="vms-backup",
version="1.0.0",
packages=find_packages(exclude=["tests"]),
python_requires="==3.8.13",
install_requires=["click"],
entry_points="""
[console_scripts]
vms-backup=vms-backup:cli
""",
)
和vms备份/init.py
import click
from commands import to_csv, to_sql, upload_to_s3
@click.group()
def cli():
pass
cli.add_command(to_csv)
cli.add_command(to_sql)
cli.add_command(upload_to_s3)
if __name__ == "__main__":
cli()
如果我执行,代码会很好地工作,但当执行pipinstall-e时。为了测试入口点,我得到了以下输出:
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [1 lines of output]
error in vms-backup setup command: 'NoneType' object has no attribute 'group'
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
你知道代码出了什么问题吗?
感谢
编辑
如果我在dockerfile中执行,错误会改变:
backup_1 | Obtaining file:///usr/app
backup_1 | Preparing metadata (setup.py): started
backup_1 | Preparing metadata (setup.py): finished with status 'error'
backup_1 | error: subprocess-exited-with-error
backup_1 |
backup_1 | × python setup.py egg_info did not run successfully.
backup_1 | │ exit code: 1
backup_1 | ╰─> [1 lines of output]
backup_1 | error in vms-backup setup command: ("EntryPoint must be in 'name=module:attrs [extras]' format", 'vms-backup=vms-backup:cli')
backup_1 | [end of output]
backup_1 |
backup_1 | note: This error originates from a subprocess, and is likely not a problem with pip.
backup_1 | error: metadata-generation-failed
backup_1 |
backup_1 | × Encountered error while generating package metadata.
backup_1 | ╰─> See above for output.
我认为您的问题是包名称vms-backup
使用了短划线
尝试使用vms_backup
(或vmsbackup
(。
命令名称可以保持不变:vms-backup = vms_backup:cli