专辑封面

加载中...

80%
紧急插播:修改环境变量问题
本文最后更新于 90 天前,其中的信息可能已经有所发展或是发生改变,如有错误请发送邮件到 ZChaohaoZhang@hotmail.com

首先我在爬虫时出现了这个问题:

这个问题的源头呢是在另一个文章https://www.chaohao.net.cn/?p=187中设置的环境变量,

emm这里设置的环境变量属于是全局变量,系统设置了代理(指向127.0.0.1:7897),但这个代理服务并没有启动,导致了 requests 无法连接网络。

我先来说一下这个全局变量会影响到哪些地方:

  1. Python requests / urllib库 :默认会走代理。如果不做任何处理,代理服务没开就会报 ProxyError(就是我现在的问题)
  2. 命令行工具: pip、curl、wget、git等也会自动使用这个代理
  3. 部分浏览器:如果浏览器没有单独设置代理,有些也会读取系统/环境变量
  4. IDE(如PyCharm/VS Code) :内部调用网络时可能受影响,如插件下载

也就是说,一旦这个环境变量存在,所有尊重这个环境变量的程序都会试图连接127.0.0.1:7897。如果代理软件开着呢,一切正常;如果关了,就会各种报错,尤其是幽灵报错。

那现在就要处理这个问题:

一:首先,清理掉与其相关的所有环境变量:

打开管理员PowerShell,

执行:

[Environment]::SetEnvironmentVariable("HTTP_PROXY",$null,"Machine")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY",$null,"Machine")
[Environment]::SetEnvironmentVariable("http_proxy",$null,"Machine")
[Environment]::SetEnviroomentVartable("https_proxy",$null,"Machine")

验证是否删除干净:

关闭所有终端,重新打开一个普通的PowerShell,输入:

$env:HTTP_PROXY
$env:HTTPS_PROXY
$env:https_proxy
$env:http_proxy

如果返回为空,说明系统级变量消失:

这样你的电脑就回到“干净”状态,以后你的那些命令行工具默认都不会走代理。

二:制作一个“代理终端”

1.在桌面上创建一个文本文件,命一个名

2.右键->编辑,输入:

@echo off
set HTTP_PROXY=http://127.0.0.1:7897
set HTTPS_PROXY=http://127.0.0.1:7897
set http_proxy=http://127.0.0.1:7897
set https_proxy=http://127.0.0.1:7897
cmd /k

保存后双击,就会打开一个已将代理变量临时注入的CLI。

当您想使用代理终端时就双击启动该文件,就会打开一个具有临时代理的命令行,但是您如果使用powershell时就还是没有代理的意思。

三:PowerShell“代理终端”(可选):

  1. 打开 PowerShell, 执行 notepad $PROFILE (如果没有就新建).
  2. 在里面加入一个自定义函数:
function Start-ProxySession {
$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
$env:http_proxy = "http://127.0.0.1:7897"
$env:https_proxy = "http://127.0.0.1:7897"
Write-Host "代理已开启" -ForegroundColor Green
}
function Stop-ProxySession {
Remove-Item Env:\HTTP_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:\HTTPS_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:\http_proxy -ErrorAction SilentlyContinue
Remove-Item Env: \https_proxy -ErrorAction SilentlyContinue
Write-Host "代理已关闭" -ForegroundColor Yellow
}

3.保存后重新打开 PowerShell。

需要代理时敲Start-ProxySession,不需要时敲Stop-ProxySession。仅影响当前窗口.

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇