首页 > 编程语言 >旧酒换新瓶,新版M1/M2芯片Macos(Ventura)安装古早版本Python2.7(Python2.x)

旧酒换新瓶,新版M1/M2芯片Macos(Ventura)安装古早版本Python2.7(Python2.x)

时间:2023-01-04 10:12:56浏览次数:57  
标签:Macos 新瓶 旧酒 Python 18 python pip 2.7 Python2

向下兼容特性是软件开发系统的一个重要指标,它是指一个新的系统或者软件能够与旧的系统或软件兼容并正常运行。这意味着旧系统或软件可以在新系统或软件中使用,而不会出现问题。向下兼容对于提高软件或系统的可用性非常重要,因为它允许用户在不更换旧系统或软件的情况下使用新系统或软件。

我们知道MacOS系统从Monterey12.3版本起就移除了系统内置的Python2,更不消说最新的Ventura13.1了,但有时候我们依然需要古早版本的Python2.x来维护或者更新一些“祖传项目”,不得不承认,这类低版本的“祖传项目”在各种中大型企业内可谓是层出不穷,那么在最新的Ventura13.1系统中,就得重新安装Python2版本。

Docker构建Python2

最简单的方式是通过Docker镜像来构建Python2开发环境,通过使用容器,开发者可以轻松地将开发环境与应用程序隔离开来,这有助于避免依赖冲突和版本混乱。

直接拉取Python2的Docker镜像文件:

docker pull python:2.7.18-slim-stretch

随后运行进入Python2命令行:

docker run -it --name python2 python:2.7.18-slim-stretch

程序返回:

➜  qiniu_async docker run -it --name python2 python:2.7.18-slim-stretch  
Python 2.7.18 (default, Apr 20 2020, 20:08:54)   
[GCC 6.3.0 20170516] on linux2  
Type "help", "copyright", "credits" or "license" for more information.  
>>>

当然了,构建开发环境并非只需要开启命令行,还需要通过pip安装一些古早版本的三方依赖,此时退出Python2命令行:

exit()

随后查看Python2的容器id

➜  ~ docker ps  
CONTAINER ID   IMAGE                        COMMAND     CREATED         STATUS         PORTS     NAMES  
41ef4af5169d   python:2.7.18-slim-stretch   "python2"   8 minutes ago   Up 5 minutes             python2  
➜  ~

进入容器内终端:

docker exec -it 41ef4af5169d /bin/sh

此时,就可是使用pip命令来安装一些老版本的软件了,比如说Django:

pip install [email protected]

程序返回:

DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support  
Collecting django  
  Downloading Django-1.11.29-py2.py3-none-any.whl (6.9 MB)  
     |████████████████████████████████| 6.9 MB 8.9 MB/s   
Collecting pytz  
  Downloading pytz-2022.7-py2.py3-none-any.whl (499 kB)  
     |████████████████████████████████| 499 kB 20.7 MB/s   
Installing collected packages: pytz, django  
Successfully installed django-1.11.29 pytz-2022.7  
WARNING: You are using pip version 20.0.2; however, version 20.3.4 is available.  
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.  
# pip list  
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support  
Package    Version  
---------- -------  
Django     1.11.29  
pip        20.0.2   
pytz       2022.7   
setuptools 44.1.0   
wheel      0.34.2

安装成功后,退出容器,然后提交更改:

# exit  
➜  qiniu_async docker commit 41ef python:2.7.18-slim-stretch  
sha256:119b30be68c806bdd4c74ffa3da115ba6ab144a91664a13e728c529c1fd5bca8

如此,就算容器被销毁,再次通过镜像启动容器,也可以保留安装的老版本软件。

HomeBrew安装虚拟环境构建Python2

如果不想使用Docker,也可以考虑Python虚拟环境,它是在主机操作系统之上的一个独立的目录,其中包含一套完全独立的Python解释器和一组库和软件包。它可以在不影响其他项目的情况下,为单个项目创建一套特定的运行环境。

首先安装HomeBrew:

/bin/zsh -c "$(curl -fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”

随后执行清理和升级:

brew cleanup && brew update

安装虚拟环境:

brew install pyenv

随后安装需要的Python2版本:

pyenv install 2.7.18

接着添加环境变量:

echo 'PATH=$(pyenv root)/shims:$PATH' >> ~/.zshrc

之后就可以开启虚拟环境了:

pyenv init

注意重启终端后,就可以切换Python版本了:

pyenv shell 2.7.18

结语

Docker容器和Python虚拟环境都可以让MacOs系统做到向下兼容开发和维护古早项目,虚拟环境主要用于在同一台机器上管理多个Python项目的依赖关系,而Docker容器则更适用于在不同的机器之间迁移应用程序和环境,可以在任何支持Docker的机器上运行该容器,而无需考虑底层操作系统的差异。

标签:Macos,新瓶,旧酒,Python,18,python,pip,2.7,Python2
From: https://www.cnblogs.com/v3ucn/p/17024069.html

相关文章

  • macOS 13.x bugs All In One
    macOS13.xbugsAllInOnemacOS13.0.1(22A400)垃圾桶清空后,还是显示有垃圾bug......
  • 黑苹果 双系统 macos 与Windows蓝牙共享
    一直在找Ventura与Windows11的蓝牙鼠标共享的办法,之前发帖问过,感谢各位群友的热心帮助,最终成功了!不敢独享,分享出来,让有需要的童鞋也能用起来。1、先在Windows11下配对好蓝牙......
  • 【macOS】“聚焦”使用大量能耗解决方案(重建“聚焦”索引)
    ✨“聚焦”使用大量能耗现象描述:每次开机后或者是其他时间,使用大量能耗中经常出现“聚焦”打开活动监视器可以发现:“聚焦“对能耗影响极大并且可以发现有一个名为......
  • macOS 终端运行提示“Operation not permitted ”解决办法
    终端运行命令后提“示Operationnotpermitted”报错,这个问题一般只有在macOSVentura系统出现比较频繁,或者是从其他版本升级到Ventura的也需要注意这个小问题。解决办法打......
  • windows制作macos的U盘启动
    苹果电脑型号对应系统版本号对照表这里参考。系统下载macos的系统对比windows系统,真的是资源太少了。有一个工具叫做GibMacOS,一键下载Macos系统工具,我没试用过。启......
  • 跟光磊学Java-macOS版IntelliJ IDEA设置
    IntelliJIDEA  在使用IntelliJIDEA开发项目之前还需要进行一些基本的设置,完成这些设置以后能让项目开发更加顺畅1.如何打开设置窗口在进行IntelliJIDE......
  • 跟光磊学Java-macOS版IntelliJ IDEA开发Java项目
    IntelliJIDEA  配置IntelliJIDEA后,就可以用它开发Java项目了,这里会手把手带领大家从头开始开发一个多模块的java项目1.IntelliJIDEA开发Java项目的流程......
  • 第02章 macOS版IntelliJ IDEA安装和卸载
    第02章macOS版IntelliJIDEA安装和卸载IntelliJIDEA安装、获得许可后才能使用IntelliJIDEA,如果不想使用IntelliJIDEA那么又应该如何卸载呢?1.IntelliJIDEA......
  • 跟光磊学Java-macOS版Java8开发环境搭建(基于Intel x86 64-bit)
    Java语言核心技术     日常办公和软件开发除了可以使用Windows系统以外,还可以使用macOS系统,至于具体使用什么系统取决于你入职公司之后公司给你发的什么电......
  • 跟光磊学Java-macOS版Java17开发环境搭建
    Java语言核心技术    日常办公和软件开发除了可以使用Windows系统以外,还可以使用macOS系统,至于具体使用什么系统取决于你入职公司之后公司给你发的什么电脑......