我想安装最新的 Python,在撰写本文时为 3.6。然而,存储库表示 Python 3.4.2 是最新版本。
我试过了:
$ sudo apt-get update
$ sudo apt-get install python3
python3 is already the newest version.
$ python -V
Python 3.4.2
为了在我的 Windows 工作站上升级到 Python 3.6,我只需下载一个 exe,单击“下一步”几次,就完成了。在 Debian Jessie 上安装 Python 3.6 的正确且官方接受的程序是什么?
答案1
您可以Python-3.6
按如下方式在 Debian 8 上安装:
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar xvf Python-3.6.9.tgz
cd Python-3.6.9
./configure --enable-optimizations --enable-shared
make -j8
sudo make altinstall
python3.6
建议make altinstall
按照官方网站。
如果您想pip
包含在内,则需要添加--with-ensurepip=install
到您的配置调用中。有关更多详细信息,请参阅./configure --help
。
警告:
make install
可以覆盖或伪装 python 二进制文件。make altinstall
因此建议不要安装,make install
因为它只安装exec_prefix/bin/pythonversion
.
需要安装一些软件包以避免一些已知问题,请参阅:常见的构建问题(更新)
Ubuntu/Debian:
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev
libreadline-dev 的替代方案:
sudo apt install libedit-dev
Fedora/CentOS/RHEL(aws ec2):
sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
openssl-devel xz xz-devel libffi-devel
openssl-devel 的替代方案:
sudo yum install compat-openssl10-devel --allowerasing
更新
python-x.y.z.tar.gz
您可以从以下位置下载最新版本这里。
要设置默认的 python 版本并在它们之间轻松切换,您需要update-alternatives
使用多个 python 版本进行更新。
假设您已经python3.7
在 debianstretch 上安装了,请使用命令whereis python
找到二进制文件 ( */bin/python
)。例如:
/usr/local/bin/python3.7
/usr/bin/python2.7
/usr/bin/python3.5
添加 python 版本:
update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 50
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 40
update-alternatives --install /usr/bin/python python /usr/bin/python3.5 30
优先python3.7
级50
现在是您的默认 python ,python -V
将打印:
Python 3.7.0b2
要在它们之间切换,请使用:
update-alternatives --config python
示例输出:
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/local/bin/python3.7 50 auto mode
1 /usr/bin/python2.7 40 manual mode
2 /usr/bin/python3.5 30 manual mode
3 /usr/local/bin/python3.7 50 manual mode
Press <enter> to keep the current choice[*], or type selection number:
答案2
编者注:
警告:这个答案展示了如何从 Debian 的未来版本安装 Python。这将产生一个混合 Debian 版本的系统,并且影响的不仅仅是 Python——在大多数情况下,应用这些指令也会引入更新的库。对于已更新的软件包,最终的设置不会以与预期相同的速度受益于安全更新。这被称为弗兰肯Debian。
考虑这个问题的其他答案,特别是这个展示了如何从源代码构建, 和这展示了如何使用虚拟环境。
Debian 的存储库中没有 Python 3.6,但测试中有它。
$ sudo nano /etc/apt/sources.list
# add
deb http://ftp.de.debian.org/debian testing main
$ echo 'APT::Default-Release "stable";' | sudo tee -a /etc/apt/apt.conf.d/00local
$ sudo apt-get update
$ sudo apt-get -t testing install python3.6
$ python3.6 -V
您要求:
正确且正式接受的程序
但我必须指出,这不是官方解决方案,因为它使用测试存储库。
答案3
官方的建议是“你实际上并不需要更新的软件”
不要遭受闪亮新东西综合症 - DontBreakDebian | Debian 维基
该页面上的大部分建议都是针对如果您希望该软件在系统范围内可用时该怎么做,但我认为在这种情况下没有必要。
如果您获取 python 源代码,构建 3.6 解释器以--prefix
控制其结束位置,然后使用virtualenv
该--python
选项,那么您可以使用 python 3.6,而不会影响项目之外的任何内容。
这个过程可能是这样的:
$ cd ~
$ mkdir pythonroot
$ mkdir opt
$ mkdir app
$ cd opt
$ wget <python tarball>
$ tar -xvf <python tarball>
$ cd python-3.6
$ ./configure --prefix="$HOME"/pythonroot
$ make
$ make install
$ cd ~
$ cd app
$ virtualenv venv --python ~/pythonroot/bin/python
$ . venv/bin/activate
[venv]$ which python
/home/<user>/pythonroot/bin/python
如果您打算这样做,您可能需要考虑--enable-optimizations
旗帜在 Pythonconfigure
脚本中,它似乎启用了一些功能,例如配置文件引导优化。它增加了构建时间,但根据一些基准测试,解释器的速度似乎提高了 10% 左右。
答案4
我的首选方法是使用蟒蛇或者迷你康达保持 Debian 上安装的最新版本的 python 和软件包。
所有内容都整齐地保存在一个文件夹中,如果您以后需要,可以很容易地将其删除。安装程序还会将路径添加到您的 bashrc(如果您使用其他 shell,请自行添加)。
它附带了 pip 和 conda,它是另一个包管理器,适合 numpy 等更复杂的包。 Miniconda 是一个简单的安装,而 Anaconda 是一个包含许多软件包的完整安装,主要用于数据分析。
迅速地:
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
如果您不使用 bash 添加路径,请阅读并接受许可证:export PATH="/home/$USER/miniconda3/bin:$PATH"
测试:
$ python --version
Python 3.6.0 :: Continuum Analytics, Inc.
从 PyPi 安装:
# pip install fava
从 conda 安装:
# conda install numpy
当您想删除它时,请删除~/miniconda3
bashrc 中的文件夹和路径。