Ubuntu16.04默认安装了Python2.7和3.5
安装Python2+:
sudo apt-get install python
请注意,系统自带的python千万不能卸载!
输入命令python
按Ctrl+D退出python命令行
输入命令sudo add-apt-repository ppa:jonathonf/python-3.6
按Enter确认
输入命令sudo apt-get update
1
2
3
4
5
6
7
8
9
10
我使用sudo apt
-
get update之后,更新失败,遇到如下错误。
W: Failed to fetch http:
/
/
ppa.launchpad.net
/
jonathonf
/
python
-
3.6
/
ubuntu
/
dists
/
precise
/
main
/
source
/
Sources
404
Not Found
W: Failed to fetch http:
/
/
ppa.launchpad.net
/
jonathonf
/
python
-
3.6
/
ubuntu
/
dists
/
precise
/
main
/
binary
-
i386
/
Packages
404
Not Found
最终发现如下的解决方案!(PPA仓库破损而且陈旧的问题)
问题:我试着通过运行apt
-
get update命令来再次同步包索引文件,但是却出现了“
404
无法找到”的错误,看起来似乎是我不能从先前添加的第三方PPA仓库中获取最新的索引。我怎样才能清除这些破损而且陈旧的PPA仓库呢?
1
sudo apt
-
get update | grep
"Failed"
1
sudo add
-
apt
-
repository
-
-
remove ppa:jonathonf
/
python
-
3.6
<br><br>再次执行: <br>sudo apt
-
get update
输入命令sudo apt-get install python3.6
按Y确认
调整Python3的优先级,使得3.6优先级较高
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
更改默认值,python默认为Python2,现在修改为Python3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
此时再输入命令python
可以看到此时已经是Python3.6了
Ubuntu下pip3的安装、升级、卸载
安装
sudo apt-get install python3-pip
sudo apt-get install python-pip
升级
sudo pip3 install --upgrade pip
python -m pip install --upgrade pip==9.0.3
如果pip默认不是pip2:
python3 -m pip install --upgrade pip --force-reinstall
python2 -m pip install --upgrade pip --force-reinstall
卸载
sudo apt-get remove python3-pip
1、卸载python3.6
sudo apt-get remove python3.6
2、卸载python3.6及其依赖
sudo apt-get remove --auto-remove python3.6
3、清除python3.6
sudo apt-get purge python3.6
or
sudo apt-get purge --auto-remove python3.6
下载 easy_install:
sudo apt-get install python-setuptools python-dev build-essential
使用pip3 出现以下错误:
Traceback (most recent call last): File “/usr/bin/pip3”, line 9, in from pip import main
解决办法
修改 /usr/bin/pip 文件
from pip import main if __name__ == '__main__': sys.exit(main()) 改为:
from pip import __main__ if __name__ == '__main__': sys.exit(__main__._main())
出现了错误locale.Error: unsupported locale settinubuntu:~# export LC_ALL=C
编译安装
1、下载 tar 包
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
2、解压 tar 包
这里使用 xfz
命令,而不建议使用 -xvzf
命令,因为其释放的文件夹需要 root 权限才可以更改或者删除。
3、进入释放的文件夹
4、添加配置
./configure --prefix=/usr/local /python3.6
要配置的是安装 Python 需要的文件夹。配置完成后,终端会显示下面一段话,可以选择无视它,不影响后续操作。
If you want a release build with all optimizations active (LTO, PGO, etc), please run ./configure –enable-optimizations
5、编译源码
6、执行安装
安装过程持续几分钟,安装成功后,安装的 Python 就在 /usr/bin/python3.6
文件夹之中。
7、修改默认 Python 版本
Ubuntu16.04 版本集成了 Python2.7 及 3.5 版本,系统中原来的 python 在 /usr/bin/python
,通过 ls -l
可以看到,python 是一个软链接,链接到本目录下的 python2.7
。
我们这里不改变原来的软连接,直接新建一个 python3.6 的软链接。
建立指向 Python3.6 的链接:
ln -s /usr/local /python3/bin/python3.6 /usr/bin/python3.6
查询 Python 版本
如果显示是 python3.6.5
则说明安装成功!
8、make 过程出错 [Objects_unicodeobject.o] Error
1)、问题描述
$ make && make install gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Modules/python.o ./Modules/python.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/acceler.o Parser/acceler.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/grammar1.o Parser/grammar1.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/listnode.o Parser/listnode.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/node.o Parser/node.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/parser.o Parser/parser.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/bitset.o Parser/bitset.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/metagrammar.o Parser/metagrammar.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/firstsets.o Parser/firstsets.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/grammar.o Parser/grammar.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/pgen.o Parser/pgen.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/myreadline.o Parser/myreadline.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/parsetok.o Parser/parsetok.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Parser/tokenizer.o Parser/tokenizer.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/abstract.o Objects/abstract.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/accu.o Objects/accu.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/boolobject.o Objects/boolobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/bytes_methods.o Objects/bytes_methods.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/bytearrayobject.o Objects/bytearrayobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/bytesobject.o Objects/bytesobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/cellobject.o Objects/cellobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/classobject.o Objects/classobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/codeobject.o Objects/codeobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/complexobject.o Objects/complexobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/descrobject.o Objects/descrobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/enumobject.o Objects/enumobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/exceptions.o Objects/exceptions.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/genobject.o Objects/genobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/fileobject.o Objects/fileobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/floatobject.o Objects/floatobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/frameobject.o Objects/frameobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/funcobject.o Objects/funcobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/iterobject.o Objects/iterobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/listobject.o Objects/listobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/longobject.o Objects/longobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/dictobject.o Objects/dictobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/memoryobject.o Objects/memoryobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/methodobject.o Objects/methodobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/moduleobject.o Objects/moduleobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/namespaceobject.o Objects/namespaceobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/object.o Objects/object.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/obmalloc.o Objects/obmalloc.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/capsule.o Objects/capsule.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/rangeobject.o Objects/rangeobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/setobject.o Objects/setobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/sliceobject.o Objects/sliceobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/structseq.o Objects/structseq.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/tupleobject.o Objects/tupleobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/typeobject.o Objects/typeobject.c gcc -pthread -c -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Objects/unicodeobject.o Objects/unicodeobject.c gcc: Internal error: Killed (program cc1) Please submit a full bug report. See <http://bugzilla.redhat.com/bugzilla> for instructions. make: *** [Objects/unicodeobject.o] Error 1
2)、解决办法
Usually, you can workaround GCC bugs by disabling optimizations. You can try to modify Makefile to replace "-O3"
with "-O2"
or even "-O0"
(disable all optimizations), and then try to run “make” again.
修改 Makefile
文件,把‘-DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes’
中的 O3
改为 O2
即可。
3)、参考
二、采用 apt-get 安装
1、添加 python3.6 的源
sudo add-apt-repository ppa:jonathonf/python-3.6
下面出现:
Don't remove Python 3.5 from your system - it will break. More info: https://launchpad.net/~jonathonf/+archive/ubuntu/python-3.6 Press [ENTER] to continue or ctrl-c to cancel adding it
这里提示我们安装 Python 3.6 后不要删除 Python 3.5,不然的话系统会崩溃,因为 Linux 系统里面对 Pyhon 的依赖是比较多的,网上能查到很多人吐槽自己删除系统默认的 Python 版本后出现问题,不得不重新装回原来的版本,甚至重装系统的经历。我们根据提示键入 Enter 后,把 Python 3.6 的 PPA 源正式加入到源列表:
gpg: keyring `/tmp/tmpsnw0vrl9/secring.gpg' created gpg: keyring `/tmp/tmpsnw0vrl9/pubring.gpg' created gpg: requesting key F06FC659 from hkp server keyserver.ubuntu.com gpg: /tmp/tmpsnw0vrl9/trustdb.gpg: trustdb created gpg: key F06FC659: public key "Launchpad PPA for J Fernyhough" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) OK
然后执行如下命令:
再次安装就可以了:
sudo apt-get install python3.6
如果提示如下:
E: Failed to fetch http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu/pool/main/p/python3.6/python3.6-minimal_3.6.3-1ubuntu1~16.04.york1_amd64.deb Connection timed out E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
再执行一遍 apt-get install
就好了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)