You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Ubuntu 20.04 ARM版中切换Python版本的问题求助

问题描述
  • 环境:Ubuntu 20.04 ARM版本,系统自带Python 3.8
  • 已通过pyenv和apt-get安装Python 3.6,执行python3 --version显示Python 3.6.0
  • 运行测试命令时,程序仍调用/usr/bin/python3(Python 3.8),出现语法错误:
    import pexpect
    /usr/local/lib/python3.8/dist-packages/pexpect/__init__.py:75: in <module>
        from .pty_spawn import spawn, spawnu
    /usr/local/lib/python3.8/dist-packages/pexpect/pty_spawn.py:14: in <module>
        from .spawnbase import SpawnBase
    E     File "/usr/local/lib/python3.8/dist-packages/pexpect/spawnbase.py", line 224
    E       def expect(self, pattern, timeout=-1, searchwindowsize=-1, async=False):
    E                                                                  ^
    E   SyntaxError: invalid syntax
    
  • 原因:自Python 3.7起,async成为保留关键字,旧版本pexpect代码使用async作为参数名,在Python 3.8中触发语法错误
解决方案
  • 设置pyenv的Python 3.6为默认版本

    • 全局生效:执行 pyenv global 3.6.0
    • 仅当前项目生效:执行 pyenv local 3.6.0
    • 验证:执行 which python3,输出应为~/.pyenv/shims/python3(而非/usr/bin/python3)
  • 确保Shell PATH配置正确

    • 打开Shell配置文件(如~/.bashrc或~/.zshrc),添加:
      export PATH="$HOME/.pyenv/shims:$PATH"
      
    • 重启Shell或执行 source ~/.bashrc(对应你的配置文件)使修改生效
  • 为Python 3.6单独安装pexpect

    • 执行 pip install pexpect,确保pip是pyenv下的版本(可通过which pip验证路径)
  • 临时指定Python版本运行程序

    • 直接用Python 3.6的路径执行脚本:python3.6 your_script.py 或 ~/.pyenv/versions/3.6.0/bin/python your_script.py

内容的提问来源于stack exchange,提问作者cybertextron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:20:38