社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

解决 Github 等网络问题的 7 种方案

Python编程时光 • 3 年前 • 438 次点击  

大家好,我是明哥~

网络问题应该是每一个开发者绕不过的问题,不管是 Python 开发者,还是 Go 工程师,或者你是其他语言的,你也肯定绕不开 Github 这个宝库。

本文总结了我日常会接触到的一些网络问题解决方案(不仅是 github,可能还夹杂其他的),可以给大家的日常开发工作提供一些便利。

# 1. pip 镜像源

首先第一个先解决大多数 Python 开发者相关的网络问题 -- 包安装。

由于在使用 pip 安装一些包时,默认会使用 pip 的官方源,而 pypi 的服务器在国外,所以经常会报网络超时失败。

pip install requests

常用的解决办法是,在安装包时,使用 -i 参数指定一个国内的镜像源。但是每次指定就很麻烦呀,还要打超长的一串字母。

这时候,其实可以将这个源写进 pip 的配置文件里。以后安装的时候,就默认从你配置的这个 源里安装了。

那怎么配置呢?文件文件在哪?

 windows

使用win+r 输入 %APPDATA% 进入用户资料文件夹,查看有没有一个 pip 的文件夹,若没有则创建之。

然后进入这个 文件夹,新建一个 pip.ini 的文件,内容如下(这边使用清华的源)

[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/

[install]

trusted-host=tsinghua.edu.cn

 macOS

直接在家目录下,新建一个 pip.conf (这边使用阿里云的源)

# 2. Github 镜像

从 Github 上 Clone 仓库经常网络不给力,怎么办?

使用镜像站:https://hub.fastgit.org

比如你要 clone 该仓库

$ git clone https://hub.fastgit.org/iswbm/magic-python.git

可以换成这个

$ git clone https://hub.fastgit.org/iswbm/magic-python.git

# 3. brew 镜像源

如果你使用的是 macOS ,那么你肯定遇到过 brew update 或者 brew install 经常失败吧?

brew 默认的源是Github,下载会非常慢,可以替换为国内的镜像源,这边推荐中科大的镜像源,比较全面一点。

设置方法

查看下原来的仓库是 github




    
cd "$(brew --repo)" 
$ git remote -v
origin    https://github.com/Homebrew/brew.git (fetch)
origin    https://github.com/Homebrew/brew.git (push)

用 git 命令重新设置下指向的仓库地址

git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

同时设置一下环境变量

echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile

最后执行下边两条命令

cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" 
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

cd "$(brew --repo)/Library/Taps/homebrew/homebrew-cask "
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git

# 4. iTerm2 下载代理

iTerm2 是 mac 上一款终端工具,我经常使用 wget 下载一些外面的资源。

如果一个域名一个域名去查对应的 ip 地址,有点麻烦。

想省事的话,可以执行如下命令开启

export ALL_PROXY=socks5://127.0.0.1:1080

执行如下命令取消全局代理

unset ALL_PROXY

有时候开了代理 反而失败,可以多次切换尝试。

# 5. go get 镜像源

使用 Go 的朋友都知道,go get 安装包都是从 github 下载的,可以执行如下命令为其配置一个镜像网站

go env -w GOPROXY=https://goproxy.cn,direct

常用的镜像源有下面三种,你选一种即可:

  • https://goproxy.io

  • https://goproxy.cn

  • https://mirrors.aliyun.com/goproxy/

# 6. 指定ip访问

使用 brew intall 安装一些包,虽然主项目是从镜像网站上下载的,但有一些依赖包还是会从 github 上下载,自然就下载败了。

可以查看一下安装日志,看看是哪里失败的,以我的经历为例,若是看到 pkg-containers.githubusercontent.com 访问失败

可以去 https://www.ipaddress.com/ 查看其指向的 IP 地址

然后将查得的 ip 填入 /etc/hosts

185.199.108.154 pkg-containers.githubusercontent.com

# 7. 使用 Github520

你使用浏览器访问 Github 的时候,是不是经常加载很久,等了几分钟页面加载出来了,页面却还是不全,图片、头像都显示不出来。

那么推荐你使用 Github520,它是由 HelloGithub 团队出品,每天会定时更新一些可用的 hosts,你只要写个定时任务自动抓取替换你机器上的 hosts 文件即可。

抓取的数据来源:

  • 文件:https://raw.hellogithub.com/hosts

  • JSON:https://raw.hellogithub.com/hosts.json

不同操作系统的 hosts 文件路径都不一样,详情如下:

  • Windows 系统:C:\Windows\System32\drivers\etc\hosts

  • Linux 系统:/etc/hosts

  • Mac(苹果电脑)系统:/etc/hosts

  • Android(安卓)系统:/system/etc/hosts

  • iPhone(iOS)系统:/etc/hosts

更改完后,记得要刷新 DNS(如果刷新后无效,可以重启机器看看)

  1. Windows:在 CMD 窗口输入:ipconfig /flushdns

  2. Linux 命令:sudo nscd restart,如报错则须安装:sudo apt install nscd 或 sudo /etc/init.d/nscd restart

  3. Mac 命令:sudo killall -HUP mDNSResponder

更多详细的内容,可以前往 https://github.com/521xueweihan/GitHub520


以上就是今天的分享,如果你有更多关于这方面的技巧欢迎评论区分享出来,互相学习一下。

整理不容易,如果你觉得文章不错,请大家 点赞、分享、留言下,这是我持续输出更多优质文章的动力!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/123630
 
438 次点击