在无法联网的Linux远程服务器上配置python环境,遇到CondaHTTPError: HTTP 000 CONNECTION FAILED for url

最近导师给我开了一个GPU服务器,Linux系统的,作为新手我开始在网上找各种资料自己配python环境,但是一顿操作之后没啥用,原来实验室的这个服务器连不了网,没办法用正常途径配置环境,而且网上好像没找到这种情况的解决方法,下面分享一下我的具体步骤。

1、首先下载Anaconda3,因为连不上网,所以不能像其他文章里面说的那样用wget +https://......这样在命令行里面下载,我选择先在我自己的windows主机上下载好安装包,网址如下:

Index of /https://repo.anaconda.com/archive/

这里以我自己安装的版本为例:

https://repo.anaconda.com/archive/Anaconda3-2021-05-Linux-x86_64.sh

 然后通过vscode进行ssh连接(具体步骤可以找其他文章看看),连上linux服务器,直接将这个安装包通过vscode传到Linux服务器上,可以直接把文件拖过去如图:

在无法联网的Linux远程服务器上配置python环境,遇到CondaHTTPError: HTTP 000 CONNECTION FAILED for url_第1张图片

 然后再像其他文章介绍的那样,对这个安装包进行安装,可以去找找别的文章看看,应该是用bash 命令进行安装,安装完成之后anaconda3就出现在同级目录下面了。

2、添加环境变量,使conda能够正常使用

打开这个.bashrc

在无法联网的Linux远程服务器上配置python环境,遇到CondaHTTPError: HTTP 000 CONNECTION FAILED for url_第2张图片

最后一行加上这句

export PATH=/home/用户名/anaconda3/bin:$PATH

在无法联网的Linux远程服务器上配置python环境,遇到CondaHTTPError: HTTP 000 CONNECTION FAILED for url_第3张图片 

 再在命令行中执行这句

source ~/.bashrc

然后再输入conda验证一下是否配置成功。

3、接下来使最关键的一步,我一开始老想着用conda install +包的名字  来下载我需要的包,但是无论我如何操作,总是报下面的错误

在无法联网的Linux远程服务器上配置python环境,遇到CondaHTTPError: HTTP 000 CONNECTION FAILED for url_第4张图片

 网上能找到的方法都试了一个遍,比如修改镜像源,改.condarc文件,去掉defaults,https改成http,断网,增加连接等待时间等等,统统都没用,再去尝试用pip install ,结果还是不行,如下图:

在无法联网的Linux远程服务器上配置python环境,遇到CondaHTTPError: HTTP 000 CONNECTION FAILED for url_第5张图片

后来无意中看到有人说可能是网络代理或VPN的问题,然后就去问学长,竟然是因为服务器连不上网,学长告诉我要用wheel安装这些包。

4、去网上找了一些如何在无网络连接的服务器上用wheel配置python环境的文章,先在你的有网络的机器上下载列表中的包到空文件夹:pip download -d D:\PKGS -r D:\requirements.txt

这里的requirements.txt是一个项目中需要的包,比如:

在无法联网的Linux远程服务器上配置python环境,遇到CondaHTTPError: HTTP 000 CONNECTION FAILED for url_第6张图片

 执行上面的命令后会在D:\PKGS中下载你需要的whl文件

在无法联网的Linux远程服务器上配置python环境,遇到CondaHTTPError: HTTP 000 CONNECTION FAILED for url_第7张图片

 远远不止requirements.txt中列出的那些包,因为那些包的安装是基于其他某些包以及安装好的情况下才能正常安装。

5、将这个D:\PKGS文档整个拖到vscode连接上的linux服务器的文件列表中,requirements.txt也拖过去,然后执行这个命令 pip install --no-index --find-links=PKGS的路径 -r reqiurementx.txt的路径。

6、如果你的联网设备和服务器设备时同样的系统,比如都是linux,那么恭喜你到上面那一步应该就可以了,但是我的电脑是windows的,直接用pip下载的whl是win-amd版本的,没办法在linux里面安装,所以我只能将PKGS文档里面的带有win-amd64的包都换成linux版本的,在这个链接里面下载

setproctitle · PyPIA Python module to customize the process titlehttps://pypi.org/project/setproctitle/1.2.3/#filessetproctitle修改为你需要的包名,1.2.3修改为版本号,然后去找linux系统的包,注意:带有musllinux的包如果不行,那就用带有manylinux的版本(最好用这个)比如我的是

下载之后替换掉Pkgs中的win-amd64版本的包,注意:有些包是要换的,有些是不同的系统都通用的不用替换。

7、等你全部替换完成之后,就可以再次执行第5步了,说不定就成功了 ,但是配环境哪有这么容易的事,如果你碰到了问题报错了,那么建议你一个包一个包地安装,虽然有点慢,但是先把能装的都装了。

8、单个包安装步骤:先cd到PKGS中,然后直接pip install 对应包的whl文件,比如: 

pip install pytorch_lightning-1.6.2-py3-none-any.whl

 这样也不一定能行,因为你可能还需要先把其他包安装好,才能安装这个包,所以建议从头开始一个一个的pip install,遇到装不了的先跳过,一轮扫过去再来一轮,不停循环直到结束。

9、需要注意的是PKGS文档中不只有whl文件,还有tar.gz后缀的压缩包,对于这个你只需要先将它解压为一个文档,然后cd进入这个文档,执行这句话就行:

python setup.py install

至此,基本就能解决linux服务器不能联网从而不能用conda install下载python包的问题了

*****第一次写文章,可能不太全面,这里只是描述了一下我个人碰到的问题,如果有不理解的欢迎在评论区留言,我看到了会尽可能解答,谢谢*****

你可能感兴趣的:(大数据,python,linux,服务器)