从GitHub安装FantraxAPI Python包时遭遇requests模块缺失的ModuleNotFoundError问题求助
从GitHub安装FantraxAPI Python包时遭遇requests模块缺失的ModuleNotFoundError问题求助
看起来你碰到的是源码安装时的依赖顺序坑——正常从PyPI安装包时,依赖会被优先安装,但直接从Git仓库拉源码构建时,安装脚本还没来得及装requests,就触发了包内代码的导入,导致报错。下面给你几个实用的解决办法:
临时快速解决:先手动装依赖
这是最快搞定的方式,先把requests装到环境里,再安装Git版本的包:
pip install requests pip install git+https://github.com/meisnate12/FantraxAPI.git@master
长期规范方案:修复fork仓库的构建配置(如果你有权限修改)
问题根源是这个仓库的安装脚本在构建过程中提前执行了包内的__init__.py代码,而此时依赖还没安装。你可以给你的fork做以下调整:
- 打开仓库根目录的
setup.py,确保install_requires列表里明确包含requests,比如:setup( # 其他配置项... install_requires=[ 'requests>=2.25.0', # 版本号可以根据实际需求调整 ], # 其他配置项... ) - 检查
setup.py里有没有直接导入包内模块的代码,如果有,把这部分代码移到if __name__ == '__main__':代码块中,避免在构建阶段触发不必要的导入。 - 如果仓库用了
pyproject.toml,可以补充构建依赖的配置,让setuptools在处理依赖前不会执行包内代码。
另一种应急方式:关闭构建隔离(谨慎使用)
pip默认会创建一个隔离的临时环境来构建包,你可以用--no-build-isolation参数跳过这个隔离,让构建过程直接用当前环境的依赖:
# 先确保当前环境已经装了requests pip install requests pip install --no-build-isolation git+https://github.com/meisnate12/FantraxAPI.git@master
⚠️ 注意:这个参数可能会让构建过程受当前环境其他包的干扰,只建议作为临时救急方案使用。
补充说明:为什么PyPI安装没问题?
PyPI上的包一般是预先构建好的wheel文件,安装时不会触发源码构建的导入逻辑,依赖会被优先安装完成,所以不会出现这个错误。而直接从Git安装是从源码开始构建,就暴露了仓库构建配置的小问题。




