如何用旧版Python创建虚拟环境?安装Python3.7遇0x80070666错误求解
解决已安装Python3.8时创建Python3.7虚拟环境的问题
这个问题我之前帮不少开发者解决过,核心原因是Python官方安装程序默认会阻止旧版本覆盖已安装的新版本,不过有几个靠谱的办法能绕过这个限制,同时顺利创建Python3.7的虚拟环境:
方法1:使用便携版Python(快速临时方案)
如果只是临时需要Python3.7,便携版是最省事的选择,不需要完整安装:
- 去Python官网下载Python3.7的Windows embeddable package(注意选和你系统匹配的32/64位版本)
- 将压缩包解压到一个无空格、无特殊字符的路径,比如
C:\Python37-Embed - 打开命令提示符,执行以下命令创建虚拟环境:
virtualenv -p "C:\Python37-Embed\python.exe" my_py37_env - 激活虚拟环境:
my_py37_env\Scripts\activate - 激活后可以用
python --version确认版本是3.7,之后就可以正常安装依赖、执行任务了 - 注意:便携版默认没有pip,需要手动安装的话,下载
get-pip.py,然后在激活的环境里执行python get-pip.py
方法2:修改安装参数绕过版本检查(完整安装方案)
如果你需要完整的Python3.7环境(比如要用到某些需要完整安装的库),可以通过命令行参数绕过官方安装程序的版本限制:
- 下载Python3.7的离线安装包(不要选web安装版,比如
python-3.7.13-amd64.exe) - 打开命令提示符,切换到安装包所在的目录,执行以下命令(注意替换安装路径为你想要的位置):
参数说明:python-3.7.13-amd64.exe /quiet InstallAllUsers=0 TargetDir=C:\Python37 Include_test=0/quiet:静默安装,不需要手动点击下一步InstallAllUsers=0:仅当前用户安装,不会影响系统全局的Python3.8TargetDir:指定自定义安装路径,避免和现有Python版本冲突
- 安装完成后,就可以用以下命令创建虚拟环境:
virtualenv -p "C:\Python37\python.exe" my_py37_env
方法3:用pyenv-win管理多版本Python(长期推荐方案)
如果之后还需要切换不同Python版本,pyenv-win是最方便的工具,能帮你一键管理多个版本:
- 打开命令提示符,用pip安装pyenv-win:
pip install pyenv-win --target %USERPROFILE%\.pyenv - 安装完成后,重启终端,执行以下命令安装Python3.7.13(可以替换成你需要的具体3.7.x版本):
pyenv install 3.7.13 - 在需要使用Python3.7的项目目录下,执行以下命令设置局部版本:
pyenv local 3.7.13 - 此时在该目录下执行
python --version会显示3.7,直接创建虚拟环境即可:virtualenv my_py37_env # 或者用Python自带的venv模块 python -m venv my_py37_env
额外注意事项
- 所有路径尽量避免空格和中文、特殊字符,防止出现路径解析错误
- 创建虚拟环境后,记得激活再执行任务,否则还是会用系统默认的Python3.8
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

