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 界面。
添加回答
舉報