首页 > 解决方案 > 如何在 ubuntu 上将我的 python 版本从 3.7.5 降级到 3.6.5

问题描述

所以目前,我有 ubuntu 19。它默认带有 python 3.7.5。我需要降级到 3.6.5。

编辑:

我正在使用虚拟环境

标签: pythonlinuxubuntuvirtualenv

解决方案


以下讨论从 3.6.7 升级到 3.7.0,但您可以使用相同的过程进行降级。除非您真的知道自己在做什么,否则您不应该更改系统 python

首先安装 Pyenv

安装说明在这里

看看 Pyenv 选项

$ pyenv 
pyenv 1.2.14
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   activate    Activate virtual environment
   commands    List all available pyenv commands
   deactivate   Deactivate virtual environment
   doctor      Verify pyenv installation and deevlopment tools to build pythons.
   exec        Run an executable with the selected Python version
   global      Set or show the global Python version
   help        Display help for a command
   hooks       List hook scripts for a given pyenv command
   init        Configure the shell environment for pyenv
   install     Install a Python version using python-build
   local       Set or show the local application-specific Python version
   prefix      Display prefix for a Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   root        Display the root directory where versions and shims are kept
   shell       Set or show the shell-specific Python version
   shims       List existing pyenv shims
   uninstall   Uninstall a specific Python version
   --version   Display the version of pyenv
   version     Show the current Python version and its origin
   version-file   Detect the file that sets the current pyenv version
   version-name   Show the current Python version
   version-origin   Explain how the current Python version is set
   versions    List all Python versions available to pyenv
   virtualenv   Create a Python virtualenv using the pyenv-virtualenv plugin
   virtualenv-delete   Uninstall a specific Python virtualenv
   virtualenv-init   Configure the shell environment for pyenv-virtualenv
   virtualenv-prefix   Display real_prefix for a Python virtualenv version
   virtualenvs   List all Python virtualenvs found in `$PYENV_ROOT/versions/*'.
   whence      List all Python versions that contain the given executable
   which       Display the full path to an executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

查看 Python 版本

$ pyenv versions
  system
 * 3.6.7 (set by /home/taarimalta/.pyenv/version)

安装一个新的 Python

$ pyenv install 3.7.0
Installing Python-3.7.0...
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
Installed Python-3.7.0 to /home/taarimalta/.pyenv/versions/3.7.0

如果您遇到 _ctypes 安装 libffi-dev 库的问题

现在看看版本


$ pyenv versions
  system
* 3.6.7 (set by /home/taarimalta/.pyenv/version)
  3.7.0

本地环境选择 3.7.0

$ pyenv local 3.7.0

看到版本变了

$ pyenv versions
  system
  3.6.7
 * 3.7.0 (set by /home/taarimalta/.python-version)
$ python
Python 3.7.0 (default, Jan  1 2020, 10:52:57) 
[GCC 9.2.1 20191008] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

切换到其他文件夹

cd ../project2
pyenv versions
  system
* 3.6.7 (set by /home/taarimalta/.pyenv/version)
  3.7.0

这里的 python 版本可能会有所不同,具体取决于您在本地设置的 python 版本

全局设置 pyenv 版本

这为用户全局设置了一个 python 版本

pyenv global 3.7.0

请注意,pyenv 通过添加 .python-version 文件来设置本地版本

$ pyenv local 3.7.0
$ cat .python-version
3.7.0

请注意,pyenv 通过查看~/.pyenv/version文件知道全局版本

cat ~/.pyenv/version
3.8.2


推荐阅读