# python_windows_evn_scripts **Repository Path**: zzf_1/python_windows_evn_scripts ## Basic Information - **Project Name**: python_windows_evn_scripts - **Description**: 编写了一些,适合国内用户使用的python一键安装包,目前有两个组合 1、pyenv+virtualenvwrapper-win ,适合普通项目开发 2、conda 脚本安装,不需要手工下载安装包,脚本中已经包含。 两种安装都考虑了国内用户的痛苦,在脚本中把所有可用的国内源都加进去了,再也不用担心下载不到可用的软件包了。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-29 - **Last Updated**: 2025-12-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 该项目主要包含用于安装和卸载的 PowerShell 脚本,面向 Windows。 ## 脚本目录结构(两套方案) 本仓库提供两套独立的安装/卸载方案,分别适用于不同的 Python 生态: ### `script_pyenv_virtualenvwrapper-win`(pyenv-win + virtualenvwrapper-win) 用途:用 `pyenv-win` 管理多版本 Python,并集成 `virtualenvwrapper-win` 管理虚拟环境(提供 `mkvirtualenv` / `workon` 等命令)。适合需要“多版本切换 + 传统 venv 工作流”的场景。 - `python_install.bat`:双击入口(交互式输入 `ROOT_DIR` / `PYTHON_VERSION`,再调用对应的 `.ps1`)。 - `python_install.ps1`:主安装脚本。 - 克隆 `pyenv-win`(使用国内仓库/源)到 `${ROOT_DIR}\pyenv-win` - 配置用户级环境变量:`PYENV_ROOT`、`Path`、`PYTHON_BUILD_MIRROR_URL` - 写入 `pip.ini`(国内镜像 + 缓存目录) - 通过 `pyenv` 安装并启用指定 `PYTHON_VERSION` - 克隆并从本地源码安装 `virtualenvwrapper-win` 到 `${ROOT_DIR}\virtualenvwrapper-win` - 配置 `WORKON_HOME`、推导并设置 `VIRTUALENVWRAPPER_PYTHON` - 安装后做可用性探测,并创建测试虚拟环境验证 - `python_uninstall.bat`:双击卸载入口(会要求输入 `YES` 二次确认),调用对应的 `.ps1`。 - `python_uninstall.ps1`:主卸载脚本。 - 停止相关进程 - 删除 `${ROOT_DIR}` 下的 `pyenv-win`、`python_versions`、`pip_cache`、`virtual_envs`、`virtualenvwrapper-win` 等目录 - 清理 `pip` 配置目录 - 尝试从用户 `Path`/环境变量中移除相关配置(并清理部分相关项) ### `script_conda`(Miniconda / conda 环境) 用途:安装/卸载 Miniconda,并自动配置 conda/pip 的国内镜像与缓存目录,适合 Conda 生态(科学计算/对二进制包依赖多的场景)。 - `install.bat`:双击入口,调用 `install.ps1`。 - `install.ps1`:主安装脚本。 - 从多个国内镜像下载 Miniconda 安装包 - 静默安装到 `${ROOT_DIR}`(默认 `E:\Conda`) - 将 conda 相关目录追加到用户 `Path` - 配置 conda channels、包缓存目录等 - 写入 `pip.ini`(国内镜像 + 缓存目录) - 创建示例环境(默认 `ENV_NAME=demo`,`PYTHON_VERSION=3.10`) - `uninstall.bat`:双击卸载入口,调用 `uninstall.ps1`。 - `uninstall.ps1`:主卸载脚本。 - 停止相关进程 - 从用户 `Path` 中移除 conda 路径 - 删除 Miniconda 安装目录与缓存目录 ## 为什么做这个(专为中国用户准备) 国内网络环境下,直接使用官方渠道安装 Python/使用 `pyenv-win` 经常会遇到下载慢、超时等问题。本项目做了以下优化: - 使用经过特殊处理的 `pyenv-win` 仓库(支持多个 Python 下载源,失败会自动切换,提高成功率) - 默认内置多个国内可用的 Python 安装包镜像源(通过 `PYTHON_BUILD_MIRROR_URL` 配置,使用 `;` 分隔) - 默认写入国内可用的 pip 镜像配置(`pip.ini`),并配置缓存目录,减少重复下载 - 集成 `virtualenvwrapper-win` 作为虚拟环境管理工具(Windows 友好,提供 `mkvirtualenv` / `workon` 等命令) ## 组件说明 - Python 多版本管理:`pyenv-win` - 虚拟环境管理:`virtualenvwrapper-win` - 本项目默认使用 Gitee 源安装:`https://gitee.com/zzf_1/virtualenvwrapper-win.git` - 安装脚本会优先从该仓库克隆到 `${ROOT_DIR}\virtualenvwrapper-win`,然后使用 `pip` 从本地源码安装 ## 便捷使用(推荐) `script` 目录提供了可直接双击运行的 `bat`: ### 安装 - 双击运行:`script/python_install.bat` - 会交互式提示输入安装根路径 `ROOT_DIR`(回车使用默认 `E:\Python`) - 会交互式提示输入需要安装的 Python 版本 `PYTHON_VERSION`(回车默认 `3.10.11`) - 若目录不存在会自动创建 - 安装结束会做一次可用性探测(例如 `where mkvirtualenv`、`pip show virtualenvwrapper-win`)并创建测试虚拟环境 也可以在命令行中传参: - `script\python_install.bat E:\Python 3.10.11` 或使用环境变量: - `set ROOT_DIR=E:\Python` - `set PYTHON_VERSION=3.10.11` - `script\python_install.bat` ### 卸载 - 双击运行:`script/python_uninstall.bat` - 会交互式提示输入卸载根路径 `ROOT_DIR`(回车使用默认 `E:\Python`) - 需要输入 `YES` 二次确认(避免误删) 也支持命令行传参: - `script\python_uninstall.bat E:\Python` ## PowerShell 脚本(高级/手动) 如果你希望直接运行 `.ps1` 并传入参数: - 安装:`script/python_install.ps1` - `powershell -NoProfile -ExecutionPolicy Bypass -File script\python_install.ps1 -ROOT_DIR "E:\Python" -PYTHON_VERSION "3.10.11"` - 卸载:`script/python_uninstall.ps1` - `powershell -NoProfile -ExecutionPolicy Bypass -File script\python_uninstall.ps1 -ROOT_DIR "E:\Python"` ## 安装后会做哪些配置 安装脚本会自动完成(尽量写入“当前用户”的环境变量;若权限受限则仅在当前会话生效): - `PYENV_ROOT`:指向 `pyenv-win` 运行目录 - `Path`:追加 `pyenv` 的 `bin` 与 `shims`,用于在任意终端直接使用 `pyenv/python/pip` - `PYTHON_BUILD_MIRROR_URL`:Python 安装包镜像源(多个地址用 `;` 分隔) - `pip.ini`:写入国内 `index-url/extra-index-url/trusted-host`,并配置 `cache-dir` - `WORKON_HOME`:虚拟环境统一存放目录(默认:`${ROOT_DIR}\\virtual_envs`) - `VIRTUALENVWRAPPER_PYTHON`:virtualenvwrapper-win 使用的 Python 解释器路径(脚本优先通过 `pyenv which python` 自动推导) > 注意:如果你安装后立刻在“新开”的 PowerShell/CMD 中发现 `mkvirtualenv`/`workon` 不可用,请先重启终端让用户级 `Path` 生效。 ## Python 版本切换(pyenv-win) 常用命令(PowerShell/CMD 均可): - 查看可安装版本:`pyenv install -l` - 安装某个版本:`pyenv install 3.11.9` - 查看已安装版本:`pyenv versions` - 查看当前生效版本:`pyenv version` 切换方式(按作用域从小到大): - 仅对当前目录生效(推荐): - `pyenv local 3.10.11` - 对当前用户全局生效: - `pyenv global 3.10.11` 切换后验证: - `python --version` - `pyenv which python` ## 虚拟环境使用(virtualenvwrapper-win) virtualenvwrapper-win 的核心命令: - 创建虚拟环境:`mkvirtualenv myenv` - 列出虚拟环境:`workon` - 激活虚拟环境:`workon myenv` - 退出虚拟环境:`deactivate` - 删除虚拟环境:`rmvirtualenv myenv` 建议用法(与 pyenv 配合): 1. 先用 `pyenv local <版本>`(或 `pyenv global <版本>`)切换到你要的 Python 版本 2. 再用 `mkvirtualenv ` 创建虚拟环境 这样创建出来的虚拟环境会绑定到当时的 Python 解释器(脚本会通过 `VIRTUALENVWRAPPER_PYTHON` 尽量固定解释器路径,避免 shims 变化带来的不确定性)。 ## 诊断(命令是否在 PATH 上) 如果你怀疑命令没生效,可以运行: - `where python` - `where mkvirtualenv` - `where workon` - `python -m pip show virtualenvwrapper-win` ## 说明 - 安装脚本会尝试写入当前用户环境变量(如 `PYENV_ROOT`、`Path`、`PYTHON_BUILD_MIRROR_URL`、`WORKON_HOME`、`VIRTUALENVWRAPPER_PYTHON`)。如果权限受限,脚本会提示并仅在当前会话内生效。 - 安装完成后,Python 多版本切换使用 `pyenv`;虚拟环境管理使用 `virtualenvwrapper-win`。