Published on

在Ubuntu20.04里运行Python2.7

Authors
  • avatar
    Name
    wellsleep (Liu Zheng)
    Twitter

新版本的 Ubuntu 默认都是高版本的 Python,至少也是 3.6 以上。但 Farbox 2.0 的运行脚本 xserver 偏偏是用 Python2 写的。为了解决这个问题,绕了半天,解决办法如下:

  1. Ubuntu 20.04 的仓库里非常奇怪的没有包含 python-pip,因此使用 # apt install python-pip 会报 Unable to locate package python-pip
  2. 从 pypa 的地址拉安装文件 # curl https://bootstrap.pypa.io/2.7/get-pip.py --output get-pip-27.py,会报说地址已更新
  3. 从更新的地址拉 # curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip-27.py,下载成功。用 # python2 get-pip-27.py 来安装 pip2,成功。
  4. 在虚拟环境中,用 $ sudo pip2 install xserver 来安装 xserver,这才符合 python2 的运行环境
  5. xserver 安装时会编译一些 wheel,可能会报错说 #include <Python.h> 找不到,这是因为缺少 python-dev 的 C 库。Ubuntu 20.04 解决这个问题的办法是在虚拟环境下安装 sudo apt install python-dev-is-python2。再来重新 $ sudo pip2 install xserver
  6. 根据 farbox2.0 的文档,sudo xserver_package deploy farbox memcache=200mb && sudo xserver start farbox 开启 farbox2.0 容器,成功。
  7. 然而由于我的 80 端口已经占用,一键架 farbox 的便利反倒成了负担,还得改 docker 启动的配置……
  8. /home/run/farbox/run.sh 中修改容器的端口映射,然后在主机的 nginx 中修改 location 的代理即可。