我已经尝试了正常的方法sudo apt-get install python3.6,但是...嗯...那没用。

那么,我该怎么办呢? (最好不要自己构建)

我正在使用Ubuntu 16.04。

评论

可能无法使用python 3.6。如果已安装aptitude,请运行aptitude search python3

#1 楼

Ubuntu 14.04(Trusty)和16.04(Xenial)

如果您使用的是Ubuntu 14.04或16.04,则可以在以下网址使用Felix Krull的Deadsnakes PPA:https://launchpad.net/~deadsnakes/+archive/ubuntu / ppa:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6


以前,J Fernyhough的PPA(在https://launchpad.net/~jonathonf/+archive/ubuntu/python-3.6)选项,但他已将其关闭以抗议(滥用)。

Ubuntu 16.10和17.04

如果您使用的是Ubuntu 16.10或17.04,则使用Python 3.6 Universe存储库,因此您可以运行:

sudo apt-get update
sudo apt-get install python3.6


安装Ubuntu 14.04、16.04、16.10和17.04后,调用Python 3.6解释器,运行python3.6

Ubuntu 17.10、18.04(Bionic)及更高版本
Ubuntu 17.10和18.04已经默认使用Python 3.6。只需运行python3即可调用它。

评论


请注意,Ubuntu 16.10中的python3.6是一个Beta版本,存在一些问题(例如dict中非常痛苦的内存泄漏,在某些罕见情况下会出现)。

– Marius Gedminas
16-12-29在14:40

注意-在任何情况下都不要试图运行sudo apt remove python3.5或类似的东西;从根本上说,Python比起您想像的更深入地融入了Ubuntu,您可能会中断Ubuntu的安装。如果要python3映射到python3.6,请创建一个符号链接!

–休·沃尔特斯
17年4月28日在9:09



我看到没有python3.6-pip包,因此我使用curl https://bootstrap.pypa.io/get-pip.py | sudo python3.6安装pip。

–触角
17年6月20日在20:26

来自ppa:jonathonf / python-3.6的python以不完整的pip到达,并且在14.04上没有easy_install。但是,我已经设法通过安装easy_install并通过curl https://bootstrap.pypa.io/ez_setup.py -o-|重新安装pip来对其进行修复。 python3.6 && python3.6 -m easy_install pip以防万一有人遇到相同的问题...

– FirefoxMetzger
17年12月3日在17:36

像上面的其他评论者一样,我也很难通过ppa:jonathonf / python-3.6安装pip。另一方面,ppa:deadsnakes / ppa可以正常工作(apt-get install python3.6 python3.6-venv -y)。

–迈克尔·赫尔曼(Michael Herrmann)
18年2月26日在16:00

#2 楼

我建议pyenv解决您的麻烦。它不使用Aptitude,而是涉及“自己构建”,但是它是完全自动化的。您只需说pyenv install 3.6.0即可构建和安装新(或旧)版本的Python。一切都以您的用户身份运行,因此您不必担心搞乱Ubuntu本身使用的Python。

此外,后续问题“如何使用apt-get安装Python 3.7的答案”。有相同的答案:pyenv update; pyenv install 3.7.0。它通常会在发布的同一天运行,因为您无需等待其他人将其打包为Ubuntu。查看您可以使用pyenv install --list安装的所有版本。

安装pyenv



安装构建CPython所需的工具和标头(PyPy或Jython等异类Python可能还有其他依赖性)。 pyenv使用了Git,此外它还启用了源分支的构建/安装,因此您现在可以安装任何3.8,即CPython的master分支刚从GitHub下载:

sudo apt-get install -y git
sudo apt-get install -y build-essential libbz2-dev libssl-dev libreadline-dev \
                        libffi-dev libsqlite3-dev tk-dev

# optional scientific package headers (for Numpy, Matplotlib, SciPy, etc.)
sudo apt-get install -y libpng-dev libfreetype6-dev    



运行安装程序脚本(由原作者安装pyenv和一些非常有用的pyenv插件;有关更多信息,请参见此处)。

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash



在您的~/.profile~/.bashrc中添加初始化行(在安装脚本的末尾提到):

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"


重新启动外壳程序(关闭并打开或exec $SHELL)或重新加载配置文件脚本。 (例如source ~/.bashrc

完成!

设置环境

不接触系统Python(通常是一个坏主意;操作系统级别)服务可能依赖于某些特定的库版本等)来创建自己的环境,这很容易!更好的是,没有安装sudo或安装pip



安装您喜欢的Python版本(这将下载源代码并为您的用户构建,无需输入)

pyenv install 3.6.0



将其设为virtualenv,以便以后可以根据需要制作其他文件

pyenv virtualenv 3.6.0 general


>
使其在全球范围内处于活动状态(针对您的用户)

pyenv global general


使用Python / pip等来做您想做的事。

如果以后要清理库,可以删除virtualenv(pyenv uninstall general)或新建一个(en.pyenv virtualenv 3.6.0 other_proj)。您还可以按目录激活活动环境:pyenv local other_proj会将.python-version文件拖放到当前文件夹中,每当您从该文件或其下调用Python或pip安装的Python实用程序时,它们都会被pyenv填充。
< br疑难解答




bash: pyenv: command not foundfish: Unknown command 'pyenv'



检查您的$PATH,应该有一个以.pyenv/bin结尾的条目。如果缺少它,请确保遵循上面的安装pyenv下的#3 AND#4(重新启动外壳)。



>如果您不使用安装程序脚本,则可能只安装了pyenv根软件包。有关添加插件的说明,请参见pyenv-virtualenv。
如果使用了安装程序脚本,请检查其是否与pyenv: no such command 'virtualenv'一起显示。




评论


当将pyenv与Python 2.x(或在新的Unicode字符串内部表示发生之前的非常老的3.x版本)一起使用时,有一个警告:pyenv使用默认的上游编译标志并使用16位Unicode字符串进行构建。 Linux发行版通常使用32位Unicode字符串构建。当您在pyenv和非pyenv Python中pip安装一些东西时,这会导致痛苦,因为pip wheel缓存的原因。

– Marius Gedminas
17年1月10日在8:34

@marius为什么安装后会使用非pyenv版本?

–尼克T
17年1月10日在14:34

我不知道,但是我通过帮助IRC上的某人调试某个特定的Python软件包(lxml?)由于此原因而无法工作的问题来发现了这个问题。因此,它在实践中对某些人来说确实是值得的。 (解决方法是rm -r〜/ .cache / pip / wheels /。)

– Marius Gedminas
17年1月11日在6:30

是否需要为每个需要Python的用户安装pyenv?如果我有3个用户需要相同的Python 3.6版本,那么它将不得不编译3次,并且将占用3倍的磁盘空间?如果那是真的,那就糟透了……:/

–显示名称
17年6月25日在11:54

默认情况下,@ SargeBorsch(如果您使用pyenv-installer)是用户安装,但是没有什么阻止您将其安装到/ opt或其他任何东西,并向/ bin添加一些符号链接。我发现只有用户才能使用它非常有用;用户不需要sudo(libs除外)。磁盘空间很便宜。

–尼克T
17年6月25日在15:30

#3 楼

这取决于您使用的Ubuntu版本。

Ubuntu 16.10和Ubuntu 17.04

由于Python 3.6安装在Ubuntu 16.10和Ubuntu 17.04的Universe存储库中,因此可以直接从存储库安装python 3.6。只需使用以下命令即可:

sudo apt update
sudo apt install python3.6


Ubuntu 16.04

有两种方法可以在Ubuntu 16.04上安装Python3.6


通过PPA在Ubuntu 16.04上编译并安装python 3.6
从PPA

1在Ubuntu 16.04上安装python 3.6。在Ubuntu 16.04上编译并安装python 3.6

安装必要的依赖项,下载python 3.6源代码,并构建环境并安装

sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
tar xvf Python-3.6.0.tar.xz
cd Python-3.6.0/
./configure
sudo make altinstall


> 2。从PPA在Ubuntu 16.04上安装python 3.6

您可以使用以下命令从PPA安装Python 3.6

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6


如果正确安装了Python 3.6 ,您可以通过在终端中运行python3.6来调用python解释器。

我希望这会有所帮助。如果您有任何问题,可以在此处查看此博客文章。

评论


这实质上是已接受答案的副本。您的答案的附加值在哪里?

–马克·范·霍米森(Mark Van Hoomissen)
18年1月4日在19:28

Ubuntu 16.04的第一步是针对出于某些原因想要编译和安装python 3.6的用户。对此,已接受的答案或线程中的任何答案均不提供在Ubuntu 16.04上编译和安装Python 3.6的过程。其他要点是要弄清楚Ubuntu的版本以及它与其他公认答案的区别。

– Aryal Bibek
18年5月5日在6:01

PPA安装在16.04(Mint)上似乎已损坏。通过源信息进行安装非常有用。

–痴呆的刺猬
18年5月7日在22:46

选项2 sudo add-apt-repository ppa:deadsnakes / ppa && sudo apt install python3.6在Ubuntu 20.04上为我工作

–鲍里斯(Boris)
20-4-24在22:38



#4 楼

如果找不到任何可用的存储库,则可以使用另一种方法,即尝试从源代码进行编译。您可以在下载页面上找到源代码。然后下载并解压压缩包;例如Python-3.6.1.tgz

解压缩tgz文件的过程是:

tar -xvzf /path/to/yourfile.tgz


一旦进入文件路径,该文件将被解压缩。到运行:

./configure
make
make altinstall


希望此方法可以为您解决问题。

评论


问题说(id最好不要自己建立)。如果可能的话,也许最好选择合适的路线。

–流浪者
16年12月28日在20:11

好的,我来看一下是否可以为您找到任何其他存储库。您是否有机会亲自在Google上寻找替代存储库?我不想建议您已经尝试过的事情。

–准时Berlake
16年12月28日在20:13

我不是OP。只是提出一个建议。我找不到用于3.6的任何PPA,因此构建可能是必要的路线。您可能应该在回答中解决这个问题。

–流浪者
16年12月28日在20:14

您的make命令将在用户从未构建任何东西的系统上失败,因为需要许多软件包。 “ sudo apt安装必需的libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev”

–乔
18年4月27日在15:43



#5 楼

对于Ubuntu 15.10,我已使用以下方法成功安装了它:

sudo add-apt-repository ppa:jonathonf/python-3.6


,但是我编辑了此文件:

sudo vi /etc/apt/sources.list.d/jonathonf-ubuntu-python-3_6-wily.list


然后我明智地更改为可信任,然后:

sudo apt-get update
sudo apt-get install python3.6


评论


Ubuntu 15.10?几个月前已经停产了。是时候升级了。

–edwinksl
17年6月14日在7:19

“ PPA说明:此PPA已从公共访问权限中删除[...]”

–鲍里斯(Boris)
20年6月18日在1:21



#6 楼

也许暗示康达并不是一个坏主意。我认为这至少比使用pyenv更容易。但这也许确实取决于您打算使用Python做什么,因为我认为使用Conda可能最终会得到一些额外的软件包。版本的Python,可以使用conda

conda install python==3.6

安装所需的版本,在此处3.6

#7 楼

最好的选择是升级到Ubuntu 20.04,然后从deadsnakes PPA安装它:

sudo add-apt-repository ppa:deadsnakes/ppa 
sudo apt install python3.6


否则,您可以尝试弄清楚如何在以下位置安装deadsnakes PPA他们不支持的Ubuntu版本。它们仅支持Ubuntu的长期支持(LTS)版本,但不支持19.04和19.10(但支持Ubuntu 20.04)。我可能发誓我在Github上的某个地方看到有人在做某事的话题https://github.com/deadsnakes/issues/issues?q=is%3Aissue+is%3Aclosed但我现在找不到它。

也请查看有关下载deb程序包的以下答案https://stackoverflow.com/a/55858634/3064538

但是如果您不能执行任何操作,那么您最后的手段是从源代码编译它,方法是先安装C编译器

sudo apt install gcc


,然后转到https://www.python.org/downloads/并找到3.6的最新微型版本(在我撰写本文时为3.6.10)并从源代码进行编译,例如这样

wget -P ~/Downloads https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tar.xz
cd ~/Downloads
tar -xJf Python-3.6.10.tar.xz
cd Python-3.6.10


,然后

./configure
make
make test
sudo make altinstall


最后一个命令使用altinstall代替install,因此将3.6安装为python3.6pip3.6。如果将最后一个命令更改为sudo make install(不带alt),则将其安装为python3,它将覆盖您现在安装的Python 3.7(和pip)的版本。

更新保留为读者的练习。

评论


谢谢你我想我是否已经安装了3.6版本,将无法正常工作?我有3.6.9,当我运行pthon3.6时,版本仍为3.6.9

–user3494047
20/12/08在10:43

您如何安装3.6.9?我猜你必须在运行make altinstall之前删除python3.6和pip3.6返回的所有文件

–鲍里斯(Boris)
20/12/08在13:32

#8 楼

考虑使用pyenv + pipenv,它将使用PIP +虚拟环境使用Pipfile替换

然后在Pipfile中替换

/ a / 49800061/1689770

#9 楼

首先,按照其他一些答案安装Python 3.6或3.7。然后,如果要通过pip安装PyPi软件包(例如OpenEXR),则可能会出现一些错误。其中一些(例如针对OpenEXR的PyPi软件包)可以通过为新安装的Python安装Python开发软件包来解决。可以使用以下方法完成此操作:

sudo apt-get install python3.6-dev



sudo apt-get install python3.7-dev