【问题标题】:How to downgrade python version from 3.8 to 3.7 (mac)如何将 python 版本从 3.8 降级到 3.7 (mac)
【发布时间】:2025-11-23 17:40:01
【问题描述】:

我正在使用 Python 和 okta-aws 工具,为了在 aws 上获取正确的凭据,我需要运行 okta-aws init。但是得到了Could not read roles from Okta的错误信息,系统提示"Your Pipfile requires python_version 3.7, but you are using 3.8.3 (/usr/local/Cellar/o/1.1.4/l/.venv/bin/python)

我试图搜索mac上的所有Pipfile,似乎我的~/Pipfile/usr/local/Cellar/python@3.8/3.8.3_2/libexec/bin/Pipfile下的Pipflie都有相同的python 3.8版本,而我/usr/local/Cellar/okta-aws-tools/1.1.4/libexec/Pipfile下的Pipfile有@987654326 @。

我已经为此苦苦挣扎了一段时间,真的不知道如何解决这个问题。

【问题讨论】:

    标签: python virtualenv okta pipenv python-3.8


    【解决方案1】:

    考虑在 macOS 上使用 Homebrew 安装 pyenv

    brew update
    brew install pyenv
    

    克隆存储库以获取最新版本的pyenv

     git clone https://github.com/pyenv/pyenv.git ~/.pyenv
    

    定义你的环境变量

    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
    source ~/.bash_profile
    

    重启你的shell,使路径更改生效

    exec "$SHELL"
    

    验证安装并检查可用的python 版本

    pyenv install --list
    

    安装所需的python版本

    pyenv install 3.7
    

    安装后设置为你的全局版本

    pyenv global 3.7
    

    验证系统正在使用的当前python 版本

    python3 --version
    

    【讨论】:

    • 还需要 eval "$(pyenv init -)" 到 .bash_profile 或 .bashrc。然后 source .bashrc 和重新打开的终端对我有用。
    • 对于新手,您可能会澄清您需要 brew install 或 git clone (但不能同时使用),具体取决于您是否需要最新版本。
    • 我按照你的建议从 3.9 降级到 3.8,但最后 python3 --version 给了我 python 3.9
    • 我也必须这样做才能使 pyenv 从 3.9 降级到 3.7 github.com/pyenv/pyenv/issues/849#issuecomment-863456765
    • 我必须添加 eval "$(pyenv init --path)" 才能工作
    【解决方案2】:

    我建议你安装和使用pyenv,一个 Python 版本管理。 安装 pyenv 后,安装 python 3.7:

    pyenv install 3.7
    

    然后将环境PYENV_VERSION设置为您要使用的python版本,在这种情况下将为3.7

    pyenv shell 3.7
    

    【讨论】:

      【解决方案3】:

      仅酿造方法。

      rm -rf $(brew --repository)/Library/Taps/company
      brew tap-new company/team
      brew extract python@3.7 company/team  --version=3.7.9 
      HOMEBREW_NO_AUTO_UPDATE=1  brew install company/team/python@3.7.9
      brew link --force company/team/python@3.7.9
      
      

      这会创建一个本地抽头,将 python 3.7.X 提取到该本地抽头中的公式,然后安装并链接该公式

      创建的本地抽头和新的公式文件可以在 $(brew --repository)/Library/Taps/company/homebrew-team

      【讨论】:

        【解决方案4】:
        • 重新安装xcode-select(使用解决方案here
        • 将python 3.9 降级到3.8.12(使用@Shayan 的解决方案here
        • 重启终端并检查默认 Python 版本,仅此而已

        这是我的 M1 Mac 解决方案

        【讨论】:

        • 您究竟是如何“将 python 3.9 降级到 3.8.12”并将其设置为“全局”的?因为这是确切的问题,所以 OP 正在努力将项目中使用的 Python 从 3.8 降级到 3.7。因此,一组更详细的步骤会很有用。
        • 虽然此代码可能会回答问题,但提供有关 why 和/或 如何 此代码回答问题的附加上下文可提高其长期价值.