背景:因为一些原因,需要同时用到python3.7的32位与python38. 平时以3.8 64位为主环境。

python,pip,pip3,都是运行在3.8下;

python37,pip37,pip3.7都是运行在3.7下;

一、分别安装python3.7,python3.8,确保3.7与3.8运行都正常

可能踩到的坑,安装完python3.7后,3.7运行正常。安装完python3.8后,3.8运行正常,再次运行3.7时一直报错,如下:

Fatal Python error: initfsencoding: unable to load the file system codec

ModuleNotFoundError: No module named 'encodings'

哪怕是卸载3.7与3.8,重启系统后再次仅安装3.7,环境变量也指向3.7,但就是报上面的错误。

解决办法:设置PYTHONPATH环境变量,指向:

PYTHONHOME=C:\Users\dengq\AppData\Local\Programs\Python\Python37-32

PYTHONPATH=%PYTHONHOME%\DLLs;%PYTHONHOME%\Lib;%PYTHONHOME%\Lib\site-packages

然后3.7就好了,不报上面的错误了,即使再把上面的两个环境变量删除,重启系统,也是好的,很奇怪的问题。

二、修改3.7中pip.exe文件

按照如下链接中所述,修改3.7中pip.exe的名称与二进制文件内容

修改pip.exe二进制文件中python.exe的位置

把python37-32\python.exe改名与python37.exe

把python37-32\pythonw.exe改名与pythonw37.exe

把python37-32\Scripts\pip.exe改名与pip37.exe

按照上面链接中所述,修改pip37.exe文件中引用的python.exe路径,改为引用python37.exe文件。

网上的文章都是到这一步就可以了,但我又踩到一坑,修改完成后,

运行python37.exe正常

运行pip37.exe报错

补充知识:安装python时pip.exe中写死了引用的Python.exe文件的绝对路径,因为我们修改python.exe文件的名称,所以需要同步修改pip.exe中引用的路径,否则会报找不到python.exe的错误

三、重新安装3.7中的pip

前提:

运行python37.exe正常

运行pip37.exe报错

运行完以下命令后,会在python37-32\Scripts目录下重新生成pip.exe,pip3.exe,pip3.7.exe。仅保留一个且改名为pip37.exe,另外的所有文件全部删除

python37 -m pip install --upgrade pip --force-reinstall

采用此命令重新安装pip时,pip.exe中会自动指向python37.exe文件,不会像初次安装那样指向python.exe

[引用原谅链接](https://blog.csdn.net/weixin_42101177/article/details/102971339)

最终环境变量设置,以下目录都需要加入到PATH中:

python37-32;python37-32\Scripts;python38;python38\Scripts;

python3.8和3.7共存,Windows10上解决python3.7与python3.8共存的问题相关推荐

  1. Windows10上使用VS2017编译OpenCV3.4.2+OpenCV_Contrib3.4.2+Python3.6.2操作步骤

    1. 从https://github.com/opencv/opencv/releases 下载opencv-3.4.2.zip并解压缩到D:\soft\OpenCV3.4.2\opencv-3.4. ...

  2. python2和python3如何共存_Windows上python2和python3共存

    1.找到python2安装目录 2.将应用程序中的python重命名为python2,或自行定义. 3.为python2设置系统变量中的path变量.注意,记得加上英文的分号. 验证:输入python ...

  3. python3.8安装教程-二、Python2.7的安装并与Python3.8共存

    一:Python解释器为什么要2个版本? 众所周知,Python2.7是一个过渡版本. 很多公司写的项目并不是基于最新的Python3写的,在之后进行一些项目更改的时候,Python3的语法有一些并不 ...

  4. 在odoo服务器文件夹,在windows10上安装odoo12开发环境的方法

    前言 鉴于好多朋友说没有mac电脑,windows开发其实也差不了多远,只是个人习惯问题,而且吧,windows的电脑其实配环境也挺快的其实,我在这里再稍微补一个比较简单的windows环境部署,希望 ...

  5. 在Windows10上安装CentOS7子系统

    在Windows10上安装CentOS7子系统 由于客户使用的服务器主要是linux的系统,redhat或centos等,而日常办公更多的是使用windows系统,这样就导致有时候做一些调试或者问题复 ...

  6. windows10上为jupyter notebook切换指定conda环境

    windows10上为jupyter notebook切换指定conda环境 1.当前状态 2. 制作kernel环境 3.加载环境 4.验证是否成功 1.当前状态 2. 制作kernel环境 查看已 ...

  7. mysql5.7.11解压版_Mysql5.7.11在windows10上的安装与配置(解压版)_MySQL

    第一步 my-default.ini 添加配置: #绑定IPv4和3306端 bind-address = 127.0.0.1 port = 3306 # 设置mysql的安装目 basedir= E ...

  8. 从windows上传到linux服务器的php图片生成不了,windows10上用thinkphp5开发程序上传服务器后出现图片异常的问题...

    1.发现问题.经过测试,发现在windows10上浏览一切正常,上传图片浏览正常,但是上传到linux服务器后出现上传图片浏览失败的情况. 2.图片名称如果全部是英文,不包含中文等特殊字符,则在lin ...

  9. redis在windows10上跑起来

    redis在windows10上跑起来 原文:redis在windows10上跑起来 今天,开始学习redis,发现大多数redis都是在Linux上面运行的,可是我想把它放到windows上面运行, ...

最新文章

  1. 基于docker部署的微服务架构(四): 配置中心
  2. Prism学习笔记(三):对Prism中模块化程序的理解。
  3. word 公式编号 右侧对齐_word排版实例:如何将文档中的公式与文字对齐
  4. c++申请内存空间_有没有想过:malloc分配的内存空间地址连续吗
  5. react封装子组件弹框
  6. 查询limit_MySQL查询语句(where,group by,having,order by,limit)
  7. 浅谈帆软报表的权限授权,以便于二次开发
  8. 【java学习之路】(java SE篇)009.IO
  9. java heap space 解决方法_内存溢出错误:java堆空间
  10. 快速备份和还原 MySQL 数据库的另一种方法
  11. SQL Server添加Check约束
  12. 短信平台接口怎么选择?看这一篇就够了
  13. zip知识点的部分总结!
  14. 手机QQ空间装逼代码收集
  15. (十:2020.08.28)CVPR 2018 追踪之论文纲要(译)
  16. Latex转word的一款软件-Pandoc
  17. SEO的日常主要工作做哪些
  18. Appium JAVA ios 设备 AUT not install
  19. 45亿换1000万学生,互联网在线教育“火烧赤壁”能否有霸主横空出世?
  20. html四舍五入函数,Javascript四舍五入(Math.round()与Math.pow())

热门文章

  1. php header什么意思,php header的用法是什么
  2. python logging使用_[译]Python Logging 使用指南
  3. 计算机辅助工艺设计主要内容,计算机辅助工艺设计.ppt
  4. python idle使用教程_PythonIDLE使用教程
  5. Win10 下Visual Studio 2017源码编译Paddle
  6. js tostring 16 java_js中toString()和String()区别详解
  7. vue如何在手机上查看vue-cli构建的项目
  8. Spring Cloud学习(一)
  9. Apache Mnemonic成为Apache顶级项目,主要解决大数据性能问题
  10. Unity 官方教程 学习