从Git仓库创建并安装Python包时出现setup.py egg_info错误
setup.py egg_info失败问题 这种egg_info报错我可太熟了,基本都是包的配置或者目录结构没搞对,咱们一步步来捋清楚:
先确认仓库根目录有正确的构建配置文件
pip要构建包,必须在仓库根目录找到setup.py(传统方式)或者pyproject.toml(现代PEP 621标准),缺了这俩肯定会报错。如果是单个模块的包,给你个最基础的setup.py示例:from setuptools import setup, find_packages setup( name="your-package-name", # 改成你的包名 version="0.1.0", packages=find_packages("src"), package_dir={"": "src"}, # 告诉setuptools从src目录找模块 )要是用
pyproject.toml,基础配置大概是这样:[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "your-package-name" version = "0.1.0" packages = ["your_module"] # 你的模块名,要和src下的文件夹/文件名对应 package_dir = {"": "src"}检查src目录的结构是否合规
你说文件在src目录,但得确保结构是对的:要么是src/your_module/__init__.py(包形式),要么是src/your_module.py(单个模块文件)。别搞成src/another_folder/your_module这种多余嵌套,不然setuptools找不到你的代码。本地先测试,别直接从GitHub装
先把仓库克隆到本地:git clone https://github.com/my_username/my_repo,然后进入仓库目录执行pip install -e .(开发模式安装),或者直接跑python setup.py egg_info。这样能在本地看到更详细的错误信息,比如是不是setup.py里有语法错误,或者某个依赖没装,比远程安装的模糊提示有用多了。看详细错误日志
要是远程安装还是报错,加个-v参数看详细输出:pip install -v git+https://github.com/my_username/my_repo,里面会告诉你到底是setup.py哪一行出问题,或者缺失了什么东西。比如我之前碰到过是setup.py里引用了一个没装的包,导致执行失败。
内容的提问来源于stack exchange,提问作者Hugh O'Brien

