在自带 Python 3.5 的 Ubuntu 16.04 上运行 Python 3.7 的最佳方法

在自带 Python 3.5 的 Ubuntu 16.04 上运行 Python 3.7 的最佳方法

我想避免反向移植,它们似乎总是弄乱我的包裹。

所以我在想 conda / virtualenv / 甚至 docker 之类的工具是否可以提供帮助。在我的系统上使用 python 3.7 的最简单/最干净的方法是什么?

答案1

明智的做法是使用pyenv安全地管理安装在同一系统上的多个 Python 版本。

尽管如此,这应该可以让你在 Ubuntu 16.04 上启动并运行 Python 3.7.10

# WARNING: As of April 30th 2021, Ubuntu Linux 16.04 LTS will no longer supported
# NOTE: It appears that Python 3.7.* has arrived into maintenance mode and will likely
# only be getting security updates.  See release notes https://www.python.org/downloads/release/python-3710/

# Install requirements
sudo apt-get install -y build-essential \
checkinstall \
libreadline-gplv2-dev \
libncursesw5-dev \
libssl-dev \
libsqlite3-dev \
tk-dev \
libgdbm-dev \
libc6-dev \
libbz2-dev \
zlib1g-dev \
openssl \
libffi-dev \
python3-dev \
python3-setuptools \
wget

# Prepare to build
mkdir /tmp/Python37
mkdir /tmp/Python37/Python-3.7.10
cd /tmp/Python37/

# Pull down Python 3.7.10, build, and install
wget https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tar.xz
tar xvf Python-3.7.10.tar.xz -C /tmp/Python37
cd /tmp/Python37/Python-3.7.10/
./configure --enable-optimizations
sudo make altinstall

然后你只需像这样调用 Python:

python3.7 ./yourScript.py

这是多个版本的 Python 共存于 Docker 容器中的屏幕截图以及如何区分它们:

如何调用Python不同版本

Pip 也应该随此安装一起安装。要安装软件包,请使用以下格式:

pip3.7 -V

答案2

我不建议手动摆弄源代码安装和路径。使用pyenv并省去麻烦。

您所要做的就是:

  • 跑过pyenv安装程序
  • 按照说明操作
  • 安装所需的 Python 版本
  • 选择要为给定目录或全局使用的 Python 版本

例如,要安装 3.7,请检查有哪些版本可用:

pyenv install -l | grep 3.7

然后运行:

pyenv install 3.7.1

现在,您可以选择您的 Python 版本:

pyenv global 3.7.1

这将切换python到 3.7.1。如果您想要系统 python,请运行:

pyenv global system

要检查有哪些 Python 版本可用,请运行pyenv versions

答案3

您可以从 www.python.org 下载源代码,从源代码编译并构建它,然后执行以下操作之一:

PATH1) 将 python 可执行文件和库的路径添加到LD_LIBRARY_PATH

2) 按照我的做法,从源代码编译并构建它,并为 中的可执行文件创建符号链接/usr/bin。您可以调用它python37来区分它与python 3.5已安装的 。

第一种方法将默认在您的环境中使用它,而第二种方法启用时,您必须使用用于符号链接的命令来指定它。您可能希望先使用第二种方法,然后再将其设为默认方法,因为该方法python 3.7仍在开发中。

相关内容