pycharm代理相关问题
前情
公司有代理,回家开自己的代理
所以在终端配置了一个可以快速开启/切换不同网络环境(公司/home)代理的命令(可以点这里参考):
proxyon 1/2 # 开启代理
proxyoff # 关闭代理
我一开始在zsh和bash默认配置开启代理,但是每次在家开终端就要手动proxyon 2开家里的代理,所以我最后设置成默认终端不开启代理。
今天上班发现一个新问题:
首先pycharm可以配置系统代理(我配置了自动发现代理,测试可以正常访问谷歌)
但是在运行配置中不会使用设置中配置的代理而是去读环境变量。
由于我之前终端默认开启代理所以之前一直可以读到环境变量,访问google ai没问题,今天调整成默认关闭代理后读不到环境变量,所以一直访问不通。
要给每个运行配置代理太麻烦了,所以现在解决方案是:用快捷方式去快速修改zsh和bash的配置文件然后生效,这样在家和公司点快捷方式去默认开启终端的代理。
方案
在/usr/local/bin中新建文件switch-proxy填入:
#!/bin/bash
# 检查参数
if [[ "$1" != "1" && "$1" != "2" && "$1" != "0" ]]; then
echo "Usage: switch-proxy [0|1|2]"
echo " 0: disable proxy"
echo " 1: company proxy"
echo " 2: home proxy"
exit 1
fi
# 定义要修改的文件列表
FILES=("$HOME/.zshrc" "$HOME/.bash_profile")
for FILE in "${FILES[@]}"; do
if [[ -f "$FILE" ]]; then
# 删除旧的 proxyon 和 proxyoff 行
sed -i.bak '/^# __PROXY_AUTO__$/ {N; d;}' "$FILE"
# 根据参数添加新的配置
if [[ "$1" == "0" ]]; then
echo "# __PROXY_AUTO__" >> "$FILE"
echo "proxyoff" >> "$FILE"
else
echo "# __PROXY_AUTO__" >> "$FILE"
echo "proxyon $1" >> "$FILE"
fi
fi
done
# 自动 source,使当前 shell 立即生效
source ~/.zshrc 2>/dev/null
source ~/.bash_profile 2>/dev/null
echo "Proxy switched to: $1"
然后在快捷指令中配置就可以快速切换代理了
pycharm也要重新启动一下