dav*_*tgq 125 debian python software-installation
我想安装最新的 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
Run Code Online (Sandbox Code Playgroud)
为了在我的 Windows 工作站上升级到 Python 3.6,我只需下载一个 exe,单击“下一步”几次,就完成了。在 Debian Jessie 上安装 Python 3.6 的正确且官方接受的程序是什么?
GAD*_*D3R 190
您可以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
Run Code Online (Sandbox Code Playgroud)
建议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
Run Code Online (Sandbox Code Playgroud)
libreadline-dev 的替代方案:
sudo apt install libedit-dev
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
openssl-devel 的替代方案:
sudo yum install compat-openssl10-devel --allowerasing
Run Code Online (Sandbox Code Playgroud)
更新
您可以python-x.y.z.tar.gz从这里下载最新版本。
要设置默认的 Python 版本并在它们之间轻松切换,您需要update-alternatives使用多个 Python 版本更新您的版本。
假设您已经python3.7在 debian stretch 上安装了,请使用该命令whereis python来定位二进制文件 ( */bin/python)。例如:
/usr/local/bin/python3.7
/usr/bin/python2.7
/usr/bin/python3.5
Run Code Online (Sandbox Code Playgroud)
添加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
Run Code Online (Sandbox Code Playgroud)
在python3.7与50优先级现在默认的Python中,python -V将打印:
Python 3.7.0b2
Run Code Online (Sandbox Code Playgroud)
要在它们之间切换,请使用:
update-alternatives --config python
Run Code Online (Sandbox Code Playgroud)
示例输出:
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:
Run Code Online (Sandbox Code Playgroud)
小智 67
编者按:
警告:这个答案显示了如何从 Debian 的未来版本安装 Python。这将导致一个混合 Debian 版本的系统,并且影响的不仅仅是 Python——在大多数情况下,应用这些指令也会引入更新的库。对于更新的包,所产生的设置不会以预期的速度从安全更新中受益。这被称为FrankenDebian。
考虑一下这个问题的其他答案,特别是这个显示如何从源代码构建,以及这个显示如何使用虚拟环境的答案。
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
Run Code Online (Sandbox Code Playgroud)
您要求:
适当和正式接受的程序
但我必须指出,这不是官方解决方案,因为它使用测试存储库。
Gre*_*bet 37
官方建议是“你实际上不需要更新的软件”
不要遭受闪亮的新东西综合症 - 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
Run Code Online (Sandbox Code Playgroud)
如果您打算这样做,您可能需要考虑Python脚本中的--enable-optimizations标志configure,它似乎启用了一些功能,如配置文件引导优化。根据一些基准测试,它增加了构建时间,但似乎使解释器的速度提高了 10% 左右。
sch*_*iba 13
您可能想看看pyenv:https : //github.com/yyuu/pyenv。引用pyenvAmaral Lab的教程:
pyenv 以前称为 Pythonbrew,允许您更改全局 Python 版本、安装多个 Python 版本、设置特定于目录(项目)的 Python 版本,以及创建/管理虚拟 Python 环境(“virtualenvs”)。所有这些都是在 *NIX 风格的机器(Linux 和 OS X)上完成的,不依赖于 Python 本身,它在用户级别工作——不需要任何 sudo 命令。
小智 11
我的首选方法是使用Anaconda或Miniconda来保持最新版本的 python 和安装在 Debian 上的软件包。
所有这些都整齐地保存在一个文件夹中,如果您愿意,以后可以很容易地将其删除。安装程序还会将路径添加到您的 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
Run Code Online (Sandbox Code Playgroud)
如果您不使用 bash 添加路径,请阅读并接受许可: export PATH="/home/$USER/miniconda3/bin:$PATH"
测试:
$ python --version
Python 3.6.0 :: Continuum Analytics, Inc.
Run Code Online (Sandbox Code Playgroud)
从 PyPi 安装:
# pip install fava
Run Code Online (Sandbox Code Playgroud)
从 conda 安装:
# conda install numpy
Run Code Online (Sandbox Code Playgroud)
如果要删除它,请删除~/miniconda3bashrc中的文件夹和路径。
| 归档时间: |
|
| 查看次数: |
272925 次 |
| 最近记录: |