Python 命令行工具打包指南
1. 创建项目结构
mytool/
│
├── mytool/
│ ├── __init__.py
│ └── cli.py # 主要的命令行接口文件
├── setup.py # 打包配置文件
└── README.md # 项目描述
2. 编写命令行接口代码
使用 argparse 创建命令行接口:
# mytool/cli.py
import argparse
def main():
parser = argparse.ArgumentParser(description="This is my custom tool")
parser.add_argument('--name', type=str, help="Your name")
args = parser.parse_args()
if args.name:
print(f"Hello, {args.name}!")
else:
print("Hello, World!")
if __name__ == '__main__':
main()
3. 创建 setup.py
配置打包信息:
# setup.py
from setuptools import setup, find_packages
setup(
name='mytool',
version='0.1',
packages=find_packages(),
entry_points={
'console_scripts': [
'mytool=mytool.cli:main',
],
},
install_requires=[], # 依赖库
)
4. 打包项目
在项目根目录运行:
pip install .
或自动链接:
pip install -e .
5. 测试命令行工具
在终端中使用命令:
mytool --name John
输出:
Hello, John!
6. 上传到 PyPI(可选)
- 注册 PyPI 账号并安装 twine:
pip install twine
- 生成分发包:
python setup.py sdist
- 使用 twine 上传:
twine upload dist/*
7. 处理 .env 文件
安装 dotenv
pip install python-dotenv
创建 .env 文件
在项目根目录创建 .env
文件:
# .env
API_KEY=your_api_key_here
加载 .env 文件
在 mytool/cli.py
中添加:
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("API_KEY")
更新 setup.py
在 install_requires
中添加 dotenv 依赖:
install_requires=[
'python-dotenv', # 依赖库
],
运行工具
确保 .env 文件存在,运行工具:
mytool --name John
输出:
Hello, John!
Your API Key is: your_api_key_here
注意事项
- 将 .env 文件加入
.gitignore
以保护敏感信息。 - 针对不同环境使用不同的 .env 文件,通过指定路径加载。