Debian12 安装Python2.7

本文详细描述了如何在2020年后发布的Linux发行版中通过源码安装Python2.7.18,避免了./configure中的常见问题,并指导读者安装pip2和pipenv,以及创建Python2的虚拟环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码安装Python2.7.18 。是目前2020年后发布的新Linux发行版的唯一途径。并且安装好了之后只能运行基本的python2功能。不能作为共享库使用,即 ./configure --enable-shared  会导致编译通不过。也不能优化,即 ./configure --enable-optimizations 会导致编译通不过。下面我们开始安装。

  1. 安装依赖(网上搜python2源码依赖吧,假设你已经安装好了依赖)
  2. 下载并解压原文件
    > wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
    > mkdir python2.7
    > tar -xzf Python-2.7.18.tgz -C python2.7
  3. 进入源码目录
    > cd python2.7
    > mv Python-2.7.18/* .
  4. 进入源码目录后执行配置并生成 Makefile 文件
    # 安装到 /usr/local/share/python2.7/bin/python 作为 python2 的文件
    > ./configure --prefix=/usr/local/share/python2.7 # 不要增加其他参数,否则会编译通不过。
    
  5. 保证Make使用的是bash语法。直接将 Makefile 文件中 /bin/sh 改成 /bin/bash
  6. 编译和安装python2
    > make
    > sudo make install
    > /usr/local/share/python2.7/bin/python2 -V
      # 如果能看到python版本,说明就安装成功了。如 Python 2.7.18
    # python2 加入到Path环境
    > sudo ln -s /usr/local/share/python2.7/bin/python2 /usr/bin/python2
    
  7. 安装pip2。pip2 也只能使用官方脚本 get-pip.py 安装。记得把脚本第一行的 python 改成 python2,因为上一步,我们只创建了 python2 的连接,没有创建 python 的连接。主要考虑到,你的机器上可能已经存在了 python 连接,并指向了 python3
    # 下载脚本源文件
    > wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
    # 修改 get-pip.py 第一行内容,把 python 改成 python2
    # 给脚本添加可执行权限
    > chmod 755 get-pip.py
    # 执行安装pip脚本,默认安装目录就是 python2 所在目录即 /usr/local/share/python2.7/bin
    > ./get-pip.py
    # /usr/local/share/python2.7/bin 目录下面应该有了pip 和 pip2 两个文件
    > /usr/local/share/python2.7/bin/pip2 -V 
    # 如果能看到pip版本信息,说明安装成功了。如 pip 20.3.4 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)
    # 如果这里报错,可能pip被安装到了其他位置。我们可以用 where pip2
    > whereis pip2
    pip2: /home/yourname/.local/bin/pip2
    > pip2_path="$(whereis pip2 | awk '{print $2}')"
    > $pip2_path -V
    # 如果能看到pip版本信息,也能说明安装成功了。如 pip 20.3.4 from home/yourname/.local/lib/python2.7/site-packages/pip (python 2.7) 如果是这种情况,你就不用把 pip2 加入 Path 环境了,也就是说下一条命令可以不用执行了。因为 $HOME/.local/bin 默认已经在 Path 中了
    # 看情况。是否执行,把 pip2 加入到 Path 环境
    > sudo ln -s /usr/local/share/python2.7/bin/pip2 /usr/bin/pip2
  8. 安装 pipenv。千万不要覆盖了 python3 的 pipenv,因此要指定安装路径,如 $HOME/.local/share/python2
    > pip2 install --target=$HOME/.local/share/python2 pipenv
    > $HOME/.local/share/python2/bin/pipenv --version
    # 如果能看到pipenv版本信息,说明安装成功了。如 pipenv, version 2021.5.29
    # 然后就可以使用 pipenv 创建python2的虚拟环境了。
    
  9. 安装虚拟环境
    > $HOME/.local/share/python2/bin/pipenv install --dev --python=python2
    Creating a virtualenv for this project...
    Pipfile: /home/yourname/python2.7/Pipfile
    Using /usr/local/share/python2.7/bin/python2.7 (2.7.18) to create virtualenv...
    ⠸ Creating virtual environment...created virtual environment CPython2.7.18.final.0-64 in 166ms
      creator CPython2Posix(dest=/home/yourname/.local/share/virtualenvs/python2.7-dgFSHbht, clear=False, no_vcs_ignore=False, global=False)
      seeder FromAppData(download=False, pip=bundle, wheel=bundle, setuptools=bundle, via=copy, app_data_dir=/home/yourname/.local/share/virtualenv)
        added seed packages: pip==20.3.4, setuptools==44.1.1, wheel==0.37.1
      activators NushellActivator,PythonActivator,FishActivator,CShellActivator,PowerShellActivator,BashActivator
    ✔ Successfully created virtual environment!
    Virtualenv location: /home/yourname/.local/share/virtualenvs/python2.7-dgFSHbht
    Creating a Pipfile for this project...
    Pipfile.lock not found, creating...
    Locking [dev-packages] dependencies...
    Locking [packages] dependencies...
    Updated Pipfile.lock (dfae9f)!
    Installing dependencies from Pipfile.lock (dfae9f)...
      🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
    To activate this project's virtualenv, run pipenv shell.
    Alternatively, run a command inside the virtualenv with pipenv run.
    

    注意 Virtualenv location 开头这一行信息。表明了,你新创建的虚拟环境在哪里。今后执行python2 都到此虚拟环境下面,尽量保证安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值