2 回答
TA贡献1111条经验 获得超0个赞
您不包括modules_and_packages在分发中。这是因为您的项目结构是错误的 - 将其与您引用的教程中的结构进行比较。它应该如下所示:
myproject
├── modules_and_packages
│ ├── __init__.py
│ └── some_module.py
├── setup.py
└── bin
└── cli_script
现在将包包含modules_and_packages到安装脚本中的 dist 中:
# setup.py
setup(
name='some_module',
packages=['modules_and_packages'],
scripts=['bin/cli_script']
)
如果您使用该setuptools.find_packages()功能进行包收集,它会变得更加容易:
from setuptools import find_packages, setup
setup(
name='some_module',
packages=find_packages(),
scripts=['bin/cli_script']
)
TA贡献1875条经验 获得超5个赞
您遵循的指南已有 5 年历史,而且有点模糊。你可以像这样设置你的cli工具:
~ tree modules_and_packages
├── bin
│ └── cli_script
├── setup.py
└── some_module
├── __init__.py
└── some_module.py
安装程序.py
from setuptools import setup
setup(
name='some_module',
py_modules=['some_module'],
scripts=['bin/cli_script']
)
some_module/__init__.py
from .some_module import *
some_module/some_module.py
def some_func():
return 42
bin/cli_script
#!/usr/bin/env python3
import some_module
print('hello')
print(some_module.some_func())
然后安装,在modules_and_packages目录中运行:
~ python setup.py develop
然后运行:
~ cli_script
hello
42
或者,如果您熟悉cookiecutter,我建议您将此模板用于 python 包,因为它具有内置的 cli 界面。
添加回答
举报