下载python篇
DownloadUrl : https://mirrors.aliyun.com/python-release/source/Python-3.12.11.tar.xz
注意下方使用的是国外源,如果你想使用最新版本的源可以使用国外的源进行安装配置。
如果使用国内源基本不需要加速器
编译安装
#!/bin/bash
url="https://www.python.org/ftp/python/3.12.11/Python-3.12.11.tar.xz"
output="Python-3.12.11.tar.xz"
while true; do
wget -c "$url" -O "$output" && break
sleep 5 # 等待5秒后重试
done
注意事项
chmod +x download_python.sh
如果你有加速器,可以使用你的加速器进行下载
export http_proxy="http://your-proxy-ip:port"
export https_proxy="http://your-proxy-ip:port"
wget https://www.python.org/ftp/python/3.12.11/Python-3.12.11.tar.xz
删除临时窗口全局变量
unset http_proxy
检查该全局变量是否加载或删除,可以通过如下命令获取
env
env | grep "《target_str》"
proxy注意事项:
想设置永久的生命周期,需要写入磁盘的启动加载项,否则为临时会话,仅限于此次终端窗口
永久生效
echo 'export http_proxy="http://127.0.0.1:1080"' >> ~/.bashrc
source ~/.bashrc # 立即生效source ~/.bashrc # 立即生效
如果想更短的生命周期,可以使用python编写代码,进行 http 请求。
import requests
url = 'http://xxxxxx' # proxy IP address
proxy = {
'http': 'http://127.0.0.1:1080', # proxy IP address and port
'https': 'http://127.0.0.1:1080'
}
response = requests.get(url, proxies=proxy)
print(response.text)
解压并安装
tar -xf ./Python-3.12.11.tar.xz
# 编译安装
cd ./Python
./configure --enable-optimizations
# 配置编译选项:
# --enable-optimizations:启用编译器优化(如 PGO 和 LTO),提升 Python 性能(约 5-10%)。
make -j $(nproc)
# -j $(nproc):使用所有 CPU 核心并行编译,加速构建过程。
sudo make altinstall
创建虚拟环境
/usr/local/bin/python3.12 -m venv myenv
source myenv/bin/activate
conda 安装
使用的是国内源
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh
cd miniconda3/
./conda init
conda --version
conda create -n condaenv python=3.12.11
conda env list
conda activate condaenv
分享一个个人小tip
刚才用了export,顺便分享一下source
可以用来加载函数使用
base.sh
#!/bin/bash
function call(){
message=${1-None}
local=$(tty)
echo ${message} >> ${local}
}
source base.sh
call anyone
可以在当前的shell环境中增加shell脚本。
例如condas的环境:
deactivate ()
{
if [ -n "${_OLD_VIRTUAL_PATH:-}" ]; then
PATH="${_OLD_VIRTUAL_PATH:-}";
export PATH;
unset _OLD_VIRTUAL_PATH;
fi;
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ]; then
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}";
export PYTHONHOME;
unset _OLD_VIRTUAL_PYTHONHOME;
fi;
hash -r 2> /dev/null;
if [ -n "${_OLD_VIRTUAL_PS1:-}" ]; then
PS1="${_OLD_VIRTUAL_PS1:-}";
export PS1;
unset _OLD_VIRTUAL_PS1;
fi;
unset VIRTUAL_ENV;
unset VIRTUAL_ENV_PROMPT;
if [ ! "${1:-}" = "nondestructive" ]; then
unset -f deactivate;
fi
}