204 lines
3.9 KiB
Bash
204 lines
3.9 KiB
Bash
#!/bin/bash
|
||
|
||
# 设置错误时立即退出
|
||
set -e
|
||
|
||
# 颜色定义
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# 日志函数
|
||
log_info() {
|
||
echo -e "${GREEN}[INFO]${NC} $1"
|
||
}
|
||
|
||
log_warn() {
|
||
echo -e "${YELLOW}[WARN]${NC} $1"
|
||
}
|
||
|
||
log_error() {
|
||
echo -e "${RED}[ERROR]${NC} $1"
|
||
}
|
||
|
||
# 安装系统依赖
|
||
install_dependencies() {
|
||
log_info "安装系统依赖..."
|
||
|
||
# 安装Python开发相关包
|
||
sudo apt-get update
|
||
sudo apt-get install -y \
|
||
python3-dev \
|
||
python3-pip \
|
||
python3-venv \
|
||
build-essential \
|
||
libssl-dev \
|
||
libffi-dev \
|
||
libxml2-dev \
|
||
libxslt1-dev \
|
||
zlib1g-dev \
|
||
libbz2-dev \
|
||
libreadline-dev \
|
||
libsqlite3-dev \
|
||
libncursesw5-dev \
|
||
xz-utils \
|
||
tk-dev \
|
||
libxmlsec1-dev \
|
||
libffi-dev \
|
||
liblzma-dev
|
||
|
||
log_info "系统依赖安装完成"
|
||
}
|
||
|
||
# 安装pyenv
|
||
install_pyenv() {
|
||
log_info "安装pyenv..."
|
||
|
||
# 下载pyenv安装脚本
|
||
curl https://pyenv.run | bash
|
||
|
||
# 配置pyenv环境变量
|
||
cat >> ~/.zshrc << EOF
|
||
# pyenv配置
|
||
export PYENV_ROOT="\$HOME/.pyenv"
|
||
export PATH="\$PYENV_ROOT/bin:\$PATH"
|
||
eval "\$(pyenv init --path)"
|
||
eval "\$(pyenv init -)"
|
||
EOF
|
||
|
||
# 重新加载配置
|
||
export PYENV_ROOT="$HOME/.pyenv"
|
||
export PATH="$PYENV_ROOT/bin:$PATH"
|
||
eval "$(pyenv init --path)"
|
||
eval "$(pyenv init -)"
|
||
|
||
log_info "pyenv安装完成"
|
||
}
|
||
|
||
# 安装Python
|
||
install_python() {
|
||
log_info "安装Python..."
|
||
|
||
# 安装最新的Python 3.11
|
||
pyenv install 3.11.7
|
||
|
||
# 设置全局Python版本
|
||
pyenv global 3.11.7
|
||
|
||
# 验证安装
|
||
python --version
|
||
|
||
log_info "Python安装完成"
|
||
}
|
||
|
||
# 配置pip
|
||
configure_pip() {
|
||
log_info "配置pip..."
|
||
|
||
# 升级pip
|
||
python -m pip install --upgrade pip
|
||
|
||
# 设置pip镜像
|
||
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
||
|
||
# 安装pip工具
|
||
pip install wheel setuptools
|
||
|
||
log_info "pip配置完成"
|
||
}
|
||
|
||
# 安装Python包
|
||
install_python_packages() {
|
||
log_info "安装Python包..."
|
||
|
||
# 安装开发工具
|
||
pip install ipython
|
||
pip install jupyter
|
||
pip install jupyterlab
|
||
pip install black
|
||
pip install flake8
|
||
pip install mypy
|
||
pip install pylint
|
||
pip install pytest
|
||
pip install pytest-cov
|
||
|
||
# 安装数据处理工具
|
||
pip install numpy
|
||
pip install pandas
|
||
pip install scipy
|
||
pip install matplotlib
|
||
pip install seaborn
|
||
|
||
# 安装Web开发工具
|
||
pip install django
|
||
pip install flask
|
||
pip install fastapi
|
||
pip install uvicorn
|
||
pip install sqlalchemy
|
||
pip install alembic
|
||
|
||
# 安装机器学习工具
|
||
pip install scikit-learn
|
||
pip install tensorflow
|
||
pip install torch
|
||
pip install transformers
|
||
|
||
# 安装其他工具
|
||
pip install requests
|
||
pip install python-dotenv
|
||
pip install rich
|
||
pip install tqdm
|
||
|
||
log_info "Python包安装完成"
|
||
}
|
||
|
||
# 配置虚拟环境
|
||
configure_venv() {
|
||
log_info "配置虚拟环境..."
|
||
|
||
# 创建虚拟环境目录
|
||
mkdir -p ~/.virtualenvs
|
||
|
||
# 安装virtualenvwrapper
|
||
pip install virtualenvwrapper
|
||
|
||
# 配置virtualenvwrapper
|
||
cat >> ~/.zshrc << EOF
|
||
# virtualenvwrapper配置
|
||
export WORKON_HOME=~/.virtualenvs
|
||
export PROJECT_HOME=~/projects
|
||
source ~/.local/bin/virtualenvwrapper.sh
|
||
EOF
|
||
|
||
log_info "虚拟环境配置完成"
|
||
}
|
||
|
||
# 主函数
|
||
main() {
|
||
log_info "开始安装Python开发环境..."
|
||
|
||
# 安装系统依赖
|
||
install_dependencies
|
||
|
||
# 安装pyenv
|
||
install_pyenv
|
||
|
||
# 安装Python
|
||
install_python
|
||
|
||
# 配置pip
|
||
configure_pip
|
||
|
||
# 安装Python包
|
||
install_python_packages
|
||
|
||
# 配置虚拟环境
|
||
configure_venv
|
||
|
||
log_info "Python开发环境安装完成!"
|
||
log_info "请运行 'source ~/.zshrc' 或重新打开终端以使环境变量生效。"
|
||
}
|
||
|
||
# 执行主函数
|
||
main |