从conda导出的依赖安装transformers失败,遇PackagesNotFoundError报错求助
问题重现
我用以下命令生成依赖列表:
conda list -e > requirements.txt
依赖文件部分内容如下:
transformers=4.28.1=pypi_0 typing-extensions=4.7.1=py310hecd8cb5_0 typing_extensions=4.7.1=py310hecd8cb5_0 tzdata=2023.3=pypi_0
在另一个conda环境中执行安装命令:
conda install transformers=4.28.1=pypi_0
出现错误:
PackagesNotFoundError: 当前频道无法提供以下包:
- transformers==4.28.1=pypi_0
当前频道:
- https://repo.anaconda.com/pkgs/main/osx-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/r/osx-64
- https://repo.anaconda.com/pkgs/r/noarch
如需寻找可提供该conda包的其他频道,请访问
https://anaconda.org并使用页面顶部的搜索栏。
原因分析
错误核心在于包名后的pypi_0后缀:这个标识说明该包是从PyPI源安装的(而非conda官方频道),conda在自身默认频道中找不到带有该后缀的包条目,因此触发找不到包的错误。
解决方案
提供三种可行的解决方式:
直接用pip安装指定版本:
既然该包原本来自PyPI,直接用pip安装最适配:pip install transformers==4.28.1用conda安装(移除pypi后缀):
删除版本号后的pypi_0后缀,让conda在自身频道中匹配对应版本:conda install transformers=4.28.1如果默认频道无此版本,可添加
conda-forge频道尝试:conda install -c conda-forge transformers=4.28.1批量处理requirements.txt:
若要批量安装所有依赖,可直接让conda处理整个文件(conda会自动区分conda包和PyPI包,必要时调用pip):conda install --file requirements.txt若部分PyPI包处理失败,可单独用pip安装剩余依赖:
pip install -r requirements.txt
内容的提问来源于stack exchange,提问作者Exploring
相关产品推荐
相关产品推荐

