我想避免反向移植,它们似乎总是弄乱我的包裹。
所以我在想 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 容器中的屏幕截图以及如何区分它们:
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 下载源代码,从源代码编译并构建它,然后执行以下操作之一:
PATH
1) 将 python 可执行文件和库的路径添加到LD_LIBRARY_PATH
。
2) 按照我的做法,从源代码编译并构建它,并为 中的可执行文件创建符号链接/usr/bin
。您可以调用它python37
来区分它与python 3.5
已安装的 。
第一种方法将默认在您的环境中使用它,而第二种方法启用时,您必须使用用于符号链接的命令来指定它。您可能希望先使用第二种方法,然后再将其设为默认方法,因为该方法python 3.7
仍在开发中。