原文:https://lwebapp.com/zh/post/pip-install-error-guide
我们在使用 Python 开发的时候,通常会用到一些好用的第三方库,推荐用 pip 来安装,比如安装 pandas
python -m pip install pandas
一般情况下都没有什么问题,但是有些小伙伴会碰到 pip 安装第三方库报错、pip install 卡住不动等安装失败的情况。
比如以下是 pip 安装第三方库报错的代码
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None))...
小编在这里就总结下 Python 安装第三方库失败的解决方案有哪些。
Python 环境因素报错,检查你的电脑下的 Python 和 pip 是否是正常安装好的
# 打印当前Python版本
python --version
运行以上命令如果正常打印出了 Python 版本信息,表明是正常的。报错的话,可能是在 Windows 下安装 Python 的时候环境变量没有配置,可以配置下 Python 环境变量,或者直接把 Python 重新安装到 C 盘,这样就不会有环境变量的问题。
# 打印pip版本
python -m pip --version
运行以上命令如果正常打印出了 pip 版本信息,表明是正常的。报错的话,可以用这个命令安装升级下
python -m ensurepip --upgrade
如果还不能运行 pip,也可以手动安装 pip
python get-pip.py就能成功安装 pip手动安装 pip 还有个好处,可以直接使用全局 pip 来安装依赖包,比如
pip install pandas
pip 虽然正常安装了,但有时候会提示你的 pip 版本过低
WARNING: You are using pip version 22.0.3; however, version 22.0.4 is available.
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
运行以下命令升级 pip
python -m pip install --upgrade pip
第三方包名称或者版本号输入错误,比如我在命令行终端安装一个叫 padas 的包
python -m pip install padas
会出现以下报错
ERROR: Could not find a version that satisfies the requirement padas (from versions: none)
ERROR: No matching distribution found for padas
这个错误提示我输入了 padas,提示找不到这个包和它的版本号。这时需要检查包名称是否输入正确,正确的应该是 pandas。(当然文章发布之后,可能有开发者朋友发布了这个包,这里仅仅作为演示)
还有版本号也可能不存在的问题,比如我安装一个高版本的 pandas
python -m pip install pandas==6.5
会出现以下报错
ERROR: Could not find a version that satisfies the requirement pandas==6.5 (from versions: 0.1, 0.2, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.6.0, 0.6.1, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.10.0, 0.10.1, 0.11.0, 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.15.0, 0.15.1, 0.15.2, 0.16.0, 0.16.1, 0.16.2, 0.17.0, 0.17.1, 0.18.0, 0.18.1, 0.19.0, 0.19.1, 0.19.2, 0.20.0, 0.20.1, 0.20.2, 0.20.3, 0.21.0, 0.21.1, 0.22.0, 0.23.0, 0.23.1, 0.23.2, 0.23.3, 0.23.4, 0.24.0, 0.24.1, 0.24.2, 0.25.0, 0.25.1, 0.25.2, 0.25.3, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.4.0rc0, 1.4.0, 1.4.1)
ERROR: No matching distribution found for pandas==6.5
很明显找不到这个版本号,而且把所有可以安装的版本号都告诉你了,我们只需要选择一个我们需要的版本号就可以,或者不指定版本号默认安装最新版本。
每个地方的网络质量、通信速度都不一样,pip 安装依赖包也会遇到网络超时问题,比如以下报错
raise ReadTimeoutError(self._pool, None, 'Read timed out.')
pip._vendor.requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.org', port=443): Read timed out.
表明是网络超时了,提示连接到 pypi.org 出了问题,这个就是托管 python 依赖包的网站,所有的 pip 包都发布在上面。
我们可以设置加长超时时间,因为大多数地方的网络并不是完全连接不上,只是速度有点感人。这里将默认的超时时间 --default-timeout 设置为 200s
python -m pip --default-timeout=200 install pandas
设置多一点的超时时间,去喝杯茶慢慢等一等,就可能下载好了。
如果喝完茶后还没下载好,接着考虑换镜像源了,比如我们切换到清华大学的镜像源
# --index-url可以简写为-i
python -m pip install --index-url https://pypi.tuna.tsinghua.edu.cn/simple/ pandas
除了官方源和清华镜像源
https://pypi.tuna.tsinghua.edu.cn/simple/https://pypi.org/还有些别的镜像源可以尝试
https://mirrors.aliyun.com/pypi/simple/https://pypi.douban.com/simple/https://mirrors.bfsu.edu.cn/pypi/web/simple/除了切换镜像源之外,pip 官方还提供了多种安装依赖包的途径
比如我们可以从 pip 官网下载 pandas 的发行包文件,然后在本地依赖包所在目录执行安装命令。
从源码包安装
python -m pip install pandas-1.4.1.tar.gz
或者从构建包安装
# 仅用于 Windows 平台的构建包
python -m pip install pandas-1.4.1-cp310-cp310-win_amd64.whl
所有的 pandas 分发包列表:pandas download files
python -m pip install -e "vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir"
比如直接从 github 安装 pandas 库
python -m pip install git+https://github.com/pandas-dev/pandas.git#egg=pandas
这种方式会从 github 上拉取最新代码做本地构建,需要的时间比较长,一般也是开发版本。
官方支持非常多的版本控制系统和协议,详细查看 VCS 支持
python setup.py install
这样就直接安装了这个项目所构建的库,本质上和用 github 远程方式差不多,都需要做本地编译,通常用作本地开发阶段使用,或者想尝试下项目最新特性。
不过如果你通过 pip install 的方式就有网络问题,这种通过 github 安装的方式通常也有一定网络问题。
小编尝试了上面几种方案,都无法很完美的满足我的需求,
pypi.org 的依赖包最为稳定,同样的问题在前端开发的 npm 包管理中也很常见,镜像源有时候会出现不可预测的错误,而往往切换到官方源就修复了(参照 npm install 报错卡住)我们可以考虑一些更科学的上网方式,来加快对官方网站的访问速度。加速之后直接使用pip install安装任何第三方库,基本上几秒钟就可以完成,无需设置超时时间,不需要切换镜像源,无需担心安装包版本延迟问题,想从 pip 官网下载源码包或者使用 github 远程安装 Python 第三方库都非常快。
除此之外,还有以下好处
https://pandas.pydata.org/git clone 来拉取 github 开源项目的时候,速度提升明显更科学的方式推荐:官方网站 ➜
不太明白的请参考这位小编的 踩坑经验 ➜
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub