如何让GitHub源Python包在虚拟环境内编译并通过requirements.txt安装
解决GitHub源包在虚拟环境编译时依赖缺失的问题
问题本质
你碰到的ModuleNotFoundError: No module named 'numpy',核心是pip的安装机制导致的:pip会先收集所有待安装的包,逐个生成metadata(比如运行setup.py egg_info),之后才批量安装所有依赖。而pyreaper(tts_data_tools的依赖)的setup.py在生成metadata阶段直接导入了numpy,此时numpy还未被安装,因此触发报错。
可行解决方案
方案1:先单独安装前置依赖
先在虚拟环境中手动安装numpy,再执行requirements文件的安装命令:
pip install numpy pip install -r requirements.txt
这种方式能确保构建pyreaper时,虚拟环境里已经存在numpy,满足setup.py的导入需求。
方案2:优先使用预编译wheel包
添加--prefer-binary选项,让pip优先下载预编译的wheel包而非源码包。wheel包无需运行setup.py生成metadata,可直接安装,跳过了依赖导入的步骤:
pip install -r requirements.txt --prefer-binary
方案3:关闭构建隔离
使用--no-build-isolation选项,让pip在当前虚拟环境中构建包,而非创建临时隔离环境。注意需要先安装numpy:
pip install numpy pip install -r requirements.txt --no-build-isolation
内容的提问来源于stack exchange,提问作者Vadim Smirnov
相关产品推荐
相关产品推荐

