linux下 python 和 pip 安装换源及虚拟环境管理详解

刚开始使用 linux 的时候踩过不少关于 python 安装的坑,不管是安装 python 还是安装 pip,又或是 pip install,本篇博文旨在对 python & pip 相关做个总结,方便其他 coder 查阅,另外也是做个记录,方便以后查阅。

本篇博文将从 python 的安装,pip 换源,虚拟环境管理的角度逐步展开,有误之处望指正。

python 安装

以 ubuntu 18.04版本为例。

ubuntu 默认安装有 python2.7,python3.6,如果我们有需求安装其他版本的 python 呢,比如 python3.7/3.8/3.9,通常我们不必卸载预安装的python版本,因为删除的话,有些影响你没法预料,我曾经删了内置版本的后,系统废了,不得不换环境。

如果安装其他版本的 python,我们可以从以下途径下载 python tar 包,官网或者其他国内的镜像源,官网的下载慢,推荐下载国内镜像源,比如阿里云上的 python,下载速度也很快。

下面开始安装流程。

1.下载安装包

	# cd 到下载目录

	

	# 下载安装包

	# wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz

	

	# 解压安装包

	# tar -xf  Python-3.7.6.tar.xz

2.编译安装

如果不做安装设置,python会默认安装,本文指定路径安装,觉得麻烦的coder可以略过目录指定。

	#创建编译安装目录

	# mkdir /usr/local/python-3.7.6 

	

	# 进入解压后的python文件中

	# cd Python-3.7.6

	

	# 指定安装配置

	# ./configure --prefix=/usr/local/python3.7.6 --with-ssl

	# 默认安装路径,可不加参数

	# 如提示缺少c编译器,install -y gcc即可

	

	# 编译

	# make && make install

到这里,其实python3.7版本已经安装好了。

但往往我们可能又有其他需求,比如shell中敲python,或者python3,我们希望直接就是python3.7的编译环境,有种办法解决,创建软连接。

以python3为例:

3.创建软连接

首先要知道,软连接其实相当于windows下的快捷方式,暂且这样理解吧。其次,要知道对应的python3,python3.7命令在哪里。

	# 找到python3的命令位置

	# which python3

	# 返回:/usr/bin/python3

	# 先删除此软连接

	# rm -f /usr/bin/python3

	

	# 刚刚安装的python3.7的位置

	# /usr/local/python-3.7.6/bin/python3.7

	

	# 创建软连接,ln命令的使用

	# ln -s /usr/local/python-3.7.6/bin/python3.7 /usr/bin/python3

	

	# ln命令格式: ln -s source dest

	-s 软连接

	/usr/local/python-3.7.6/bin/python3.7       source 源

	/usr/local/bin/python3                      dest

如果是centOS(centos7为例),安装 python 前要注意以下:

安装编译环境

	yum -y groupinstall "Development tools"

	 

	yum install gcc patch libffi-devel python3-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

	 

	yum install libffi-devel -y

pip的安装

不管是ubuntu还是centos,都是默认没有安装pip的,如果自己安装了python3,则有pip3。

1.安装pip

	# ubuntu 18.04

	# apt-get install python-pip

	 

	# centos7

	# yum install -y python-pip

	 

	# 如果安装失败,先更新下update,如ubuntu系统,可以执行以下命令:

	# apt-get update

此时的pip,其实默认指向python2的,以python3的为例吧。

2.创建软连接

刚刚也提到了,linux默认没有pip的,所以我们可以直接创建软连接

	# ln -s /usr/local/python-3.7.6/bin/pip3 /usr/local/bin/pip3

3.换源

由于pip默认从官网下载安装包,server又不在境内,访问速度慢,国内有很多镜像源供选择,速度也很快,稳定。

如果root用户和其他用户都会使用的话,建议在/root/和/home/username/下都做个换源设置,root下pip install 用的是/root/下的镜像源,同理其他用户是/home/username/下的。

	# 1.创建配置文件-root下或其他用户下

	 

	root用户的

	# mkdir /root/.pip

	# cd /root/.pip

	 

	# touch pip.conf | echo > pip.conf

	 

	# 2.编辑配置文件

	 

	# vim pip.conf

	 

	---分割线---

	 

	阿里源:

	[global]

	index-url = http://mirrors.aliyun.com/pypi/simple/

	disable-pip-version-check = true          #取消pip版本检查,排除每次都报最新的pip,非必须

	 

	[install]

	trusted-host=mirrors.aliyun.com

	 

	---分割线---

	# 在[install]设置:install_lib = ~/usr/lib/pythonxxx/site-packages,可以指定pip安装包路径

	 

	国内源:

	阿里云 http://mirrors.aliyun.com/pypi/simple/ 

	中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 

	豆瓣(douban) http://pypi.douban.com/simple/ 

	清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 

	中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

	 

	其他用户,类似,只是 .pip文件夹位置不一样,在用户的家目录下即可

虚拟环境配置

通过前面的操作,我们已经安装了python,也可以pip 安装包,如果有不同python版本的运行需求,我们就可以通过虚拟环境来切换不同版本的python,很方便的。

1.安装虚拟环境包

	pip install virtualenv

	pip install virtualenvwrapper

2.配置文件-环境变量

此处以一般用户的家目录为例,可先创建.virtualenvs文件夹。

	# 1.编辑配置文件 ~/.bashrc

	

	# 加入以下内容

	---分割线---

	 

	export WORKON_HOME=$HOME/.virtualenvs  

	export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

	source ~/.local/bin/virtualenvwrapper.sh

	 

	---分割线---

	

	# 注意:ubuntu 17.04后,安装virtualenvwrapper后,

	# virtualenvwrapper.sh在 ~/.local/bin下,一般在/usr/local/bin下,按实际位置配置source

	

	# 2.保存后,刷新环境变量,针对当前用户有效,如要全局设置,可在 /etc/profile 或 /etc/environment 中设置PATH

	# source ~/.bashrc

3.不同虚拟环境的管理

我们可以通过链接不同的python版本,创建不同版本的python虚拟环境,主要需求是同个python版本,但安装包的版本不一样。

virtulaenv方式

	# 1.创建并激活虚拟环境 : mkvirtualenv 虚拟环境名称 (默认创建python2.7)

	e.g. mkvirtualenv py27

	# 创建的虚拟环境会在 ~/.virtualenvs 下

	

	# 2.创建指定语言版本的虚拟环境

	mkvirtualenv -p python语言版本的路径 虚拟环境的名称

	 

	mkvirtualenv -p /usr/bin/python3.5 虚拟环境的名称

	e.g. mkvirtualenv  -p /usr/bin/python3 py35

	# 先前已经创建软连接,python3 >>> python3.7.6

	

	# 3.退出虚拟环境 : deactivate

	

	# 4.进入某虚拟环境: workon 虚拟环境名称 (该虚拟环境必须存在)

	e.g.  workon py27

	

	# 5.删除虚拟环境:rmvirtualenv 虚拟环境名称

	e.g. rmvirtualenv py27

	

	# 6.列出所有环境:workon 或者 lsvirtualenv -b

	

	# 7.重命名虚拟环境名 因为没有mv相关命令,但可以通过 cp && rm 操作完成

	cpvirtualenv oldname newname

	rmvirtualname oldname

pyvenv

pyvenv 是python3自带的虚拟环境工具,通过这个也可以轻松实现虚拟环境的安装。

接下来直接说使用吧。

	# 使用以下命令即可直接创建基于同python版本的虚拟环境

	pyvenv ENV_NAME

举个例子,我刚安装python3.7,进入python3.7的安装目录:

	# 查看python3.7路径

	# whereis python3.7

	python3: /usr/bin/python3.6 /usr/bin/python3.6m /usr/bin/python3.6-config 

	/usr/bin/python3.6m-config /usr/bin/python3.6m-x86_64-config /usr/bin/python3 

	/usr/lib/python3.6 /usr/lib64/python3.6 /usr/include/python3.6m /usr/local/python3.7 

	/usr/local/python3.7/bin/python3.7m /usr/local/python3.7/bin/python3.7 

	/usr/local/python3.7/bin/python3.7m-config /usr/local/python3.7/bin/python3 

	/usr/local/python3.7/bin/python3.7-config /usr/share/man/man1/python3.1.gz

	 

	# 进入python3.7路径

	# cd /usr/local/python37

	 

	# 列出文件

	# ls 

	 

	# 进入bin目录,并列出有哪些文件

	# cd bin;ls

	2to3  2to3-3.7  django-admin  django-admin.py  easy_install-3.7  

	idle3  idle3.7  pip3  pip3.7  __pycache__  pydoc3  pydoc3.7  python3  

	python3.7  python3.7-config  python3.7m  python3.7m-config  python3-config 

	pyvenv  pyvenv-3.7  uwsgi

	 

	# 使用pyvenv之前,确保环境变量已添加

	 

	# 基于python3.7版本,另外生成3.7的虚拟环境

	# pyvenv py37test

	WARNING: the pyenv script is deprecated in favour of `python3.7 -m venv`

	 

	# cd py37test/

	# ls

	bin  include  lib  lib64  pyvenv.cfg

	 

	# 可以看到另外的python3.7

	# cd bin;ls

	activate  activate.csh  activate.fish  easy_install  easy_install-3.7  pip  pip3  pip3.7  python  python3  python3.7

使用虚拟环境:

	# 结合自己的path激活

	# source env/bin/activate

	

	# 退出

	# deactivate

为了以后使用方便,建议加入环境变量中。具体见博文: linux系统修改环境变量-export

使用anaconda管理虚拟环境

	# 创建虚拟环境

	conda create xxx -n envName

	 

	# 激活某虚拟环境

	conda activate  envName

	 

	# 退出某虚拟环境

	conda deactivate envName

	 

	3.1 创建虚拟环境

	conda create -n env_name python=version package_names

	 

	其中,参数-n是指接下来的参数指定虚拟环境名,与--name等效,所以python36即为指定的将要创建的虚拟环境名。python=version是为虚拟环境指定Python版本,指定版本后,conda会安装该版本下最新的子版本,例如指定版本为3.6时,conda将会安装最新的3.6.x版本。package_names是要为新的虚拟环境创建时就安装的包,这里也可以不安装其他包,省略这一参数,在后续使用虚拟环境时安装第三方包。

	例:创建一个虚拟环境,Python版本为3.6,虚拟环境名为python36

	conda create --name python36 python=3.6

	 

	3.2 查看虚拟环境

	conda env list

	 

	运行后,结果如下:

	# conda environments:

	#

	base * /home/chb/anaconda3

	python36 /home/chb/anaconda3/envs/python36

	上述结果列出了当前系统中所有conda创建的虚拟环境,即环境所在目录。base是安装anaconda时指定安装的Python环境。型号(*)是指系统当前说还是用的Python环境。

	 

	3.3 激活虚拟环境

	conda activate env_name

	 

	例如:进入刚刚创建的虚拟环境python36

	conda activate python36

	 

	如果进入到虚拟环境python36,之后的命令行抬头都会有一个“(python36)”的字样。

	3.4 退出虚拟环境

	退出虚拟环境时并不需要指定虚拟环境名,直接运行下行命令即可:

	conda deactivate

	 

	3.5 共享虚拟环境

	什么是共享虚拟环境呢?当我们在本机上开发了一套代码,然后将代码上传到github或者发给项目组其他人,这是别人可不知道我们开发的代码上面用到了哪些依赖,conda提供了方便得功能将虚拟环境中所有依赖包统一导出一个配置文件中,在别的机器上使用这套代码时,根据conda导出的配置文件重建虚拟环境即可,这就是共享虚拟环境功能。在多人协作开发及开源的情况下,共享虚拟环境无疑是一个非常实用的功能。

	 

	先来导出依赖到配置文件:

	conda env export --file python36_env.yml

	 

	environment.yaml是导出依赖的目标文件,运行命令后,当前目录下就回生成一个environment.yaml文件,包含了所有依赖信息。

	根据配置文件创建虚拟环境:

	conda env create -f /home/chb/code/python36_env.yml

	 

	运行上述命令后,在新机器上也会创建一个一模一样的虚拟环境。

	3.6 删除虚拟环境

	conda remove -n python36 --all 

	或者

	conda env remove -n python36

	 

	 

	4 包管理

	4.1 安装包

	conda install package_name

	 

	或者

	pip install package_name

	 

	4.2 列出所有包

	conda list

	 

	4.3 更新包

	conda update package_name

	 

	如果想要一次性更新所有包:

	conda update --all

	 

	4.4 查找包

	conda search keyword

	 

	例如:我们要安装pandas,但是忘了准确名称,可以这样查找:

	conda search pan

	 

	4.5 删除包

	conda remove package_name

题外话

在此疾速成长的科技元年,编程就像是许多人通往无限可能世界的门票。而在编程语言的明星阵容中,Python就像是那位独领风 骚的超级巨星, 以其简洁易懂的语法和强大的功能,脱颖而出,成为全球最炙手可热的编程语言之一。


Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。

这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!

CSDN大礼包:全网最全《全套Python学习资料》免费分享🎁

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉CSDN大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉CSDN大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值