如何为Python包添加子包并通过pip完成安装?
解决方法
要让package_name_1和package_name_2同时被安装到site-packages,只需完成以下操作:
1. 确认新包目录结构
先按你给出的结构创建好package_name_2文件夹及内部文件,确保package_name_2下存在__init__.py(可以是空文件,但必须有,Python才会将其识别为合法包),最终项目结构如下:
package_name/ README.txt setup.py package_name_1/ __init__.py module1.py package_name_2/ __init__.py module2.py
2. 修改setup.py文件,纳入新包
打开项目根目录的setup.py,调整packages参数,将package_name_2包含进去,有两种实用方式:
方式一:手动指定所有包
如果包数量少,直接列出所有需要安装的包:
from setuptools import setup setup( name="package_name", version="0.1", packages=['package_name_1', 'package_name_2'], # 添加新包到列表 # 其他原有参数(如author、description等)保持不变 )
方式二:自动扫描所有包
如果后续可能新增更多包,推荐用find_packages()自动识别项目中所有合法包,无需每次手动修改:
from setuptools import setup, find_packages setup( name="package_name", version="0.1", packages=find_packages(), # 自动扫描所有含__init__.py的文件夹 )
3. 重新安装包
在项目根目录(包含setup.py的文件夹)下执行安装命令:
pip install .
如果需要开发模式(修改代码后无需重新安装即可生效),使用:
pip install -e .
安装完成后,查看site-packages目录,就能同时看到package_name_1和package_name_2了。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

