Python虚拟环境搭建
一、操作系统与编程语言
操作系统是一种介于硬件与应用软件之间的系统软件,它能够隐藏硬件的细节,从而对用于提供服务:

时间段 | 发展历史 | 硬件变化 | 操作系统 | --- | --- |
---|---|---|---|---|---|
1945-1955 | 真空管和穿孔卡片: 艾奥瓦州大学的John Atanasoff教授和他的学生建造了第一台可工作的数字计算机,该机器使用了300个真空管,使用纯粹的机器语言,操作系统从没听说过,将程序写在卡片上读入计算机 |
真空管 | 没有 | ||
1955-1965 | 晶体管和批处理系统: 使用晶体管构造大型机(科学工程计算),收集全部的作业放在磁带里,然后自己工作,等待输出,不需要人一直看守以及作业之间不需要浪费时间等待,使用的是汇编语言 |
晶体管 | 批处理系统 | ||
1965-1980 | 集成电路和多道程序设计: IBM引入360系列计算机解决科学工程和商业计算兼容,采用的就是集成电路模式。多道就是将内存分成不同的区域放置不同的作业,一个作业处理IO另一个可以处理,使用汇编语言 |
集成电路 | 批处理系统(unix/linux) | ||
1980-至今 | 个人计算机 大规模集成电路,上千个集体管嵌入,DOS操作系统-->运行在DOS上的GUI(早期的windows,更像一个shell)-->windows各种版本 |
大规模集成电路 | Windows系统 |
总结:
硬件晶体管支持电信号0/1,所以底层是二进制的
需要编译功能

- 总结
高级语言要执行需要编译器才能,否则计算机不认识,那么我们安装Python到底是在做什么。
Python是一门编程语言
安装的实际上是Python的解释器,用于将Python代码转成二进制机器语言,好让计算机识别
二、Python安装

举例说明(汉语):
- Python
- Python不同种类解释器
- Python包
Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器:
CPython
当 从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpython,这个解释器是用C语言开发的,所以叫 CPython,在命名行下运行python,就是启动CPython解释器,CPython是使用最广的Python解释器。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的,好比很多国产浏览器虽然外观不同,但内核其实是调用了IE。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度,PyPy采用JIT技术,对Python代码进行动态编译,所以可以显著提高Python代码的执行速度。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
(一) 安装方式
- 全局
- 虚拟环境

解决:
- 不同项目使用不同的环境
- 不同版本Python
- 同一个版本包冗余
(二) 虚拟环境
,目前虚拟环境管理较多的方法有这么三种:
virtualenv
pipenv
anaconda
1、安装全局Python
- 下载Python

安装完毕后进入命令行:

添加了系统环境变量,包括Python和pip。
通过pip安装包的位置:C:\Users\iveBo\AppData\Local\Programs\Python\Python310\Lib\site-packages
2、pip源配置
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
python -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
实际上:
C:\Users\iveBo>pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Writing to C:\Users\iveBo\AppData\Roaming\pip\pip.ini
pip.ini
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
(三) virtualenv
pip install virtualenv
在Python安装目录:C:\Users\iveBo\AppData\Local\Programs\Python\Python310
新建env目录(目录可以随意):
# 新建指定python版本虚拟环境
virtualenv -p /usr/bin/python3 py3env
# 新建虚拟环境
virtualenv testEnv
# 进入虚拟环境 C:\Users\iveBo\AppData\Local\Programs\Python\Python310\env\testEnv\Scripts
C:\Users\iveBo\AppData\Local\Programs\Python\Python310\env\testEnv\Scripts>activate
(testEnv) C:\Users\iveBo\AppData\Local\Programs\Python\Python310\env\testEnv\Scripts>
# 安装包
(testEnv) C:\Users\iveBo\AppData\Local\Programs\Python\Python310\env\testEnv\Scripts>pip install requests
Collecting requests
Using cached requests-2.28.1-py3-none-any.whl (62 kB)
...
# 退出虚拟环境
(testEnv) C:\Users\iveBo\AppData\Local\Programs\Python\Python310\env\testEnv\Scripts>deactivate
C:\Users\iveBo\AppData\Local\Programs\Python\Python310\env\testEnv\Scripts>
(四) pipenv
pip install pipenv
- cmd中输入命令 pip install pipenv 安装pipenv
- cmd切换路径到需要建立虚拟环境的项目目录下
- 输入命令 pipenv install 开始安装虚拟环境
- 安装完毕后输入命令 pipenv shell 进入虚拟环境
Pipfile文件
- 虚拟环境安装完毕后项目目录中将创建Pipfile/Pipfile.lock两个文件
- Pipfile:用于保存项目的python版本、依赖包等相关信息
- Pipfile.lock:用于对Pipfile的锁定
- Pipfile文件可以单独移放到其他项目内,用于项目虚拟环境的建立和依赖包的安装
常用命令
- pipenv install:
-
- 若项目目录中虚拟环境未创建且无Pipfile文件,将安装虚拟环境并创建Pipfile文件
- 若项目目录中虚拟环境未创建且有Pipfile文件,将根据Pipfile文件来安装相应python版本和依赖包
- 若项目目录中虚拟环境已创建且有Pipfile文件,将根据Pipfile文件来安装依赖包
- pipenv install xx::安装python包
- pipenv uninstall xx::卸载python包
- pipenv shell:进入虚拟环境(项目目录下)
- exit:退出虚拟环境
- pipenv graph:显示包依赖关系
- pipenv --venv:显示虚拟环境安装路径
安装包后的路径:
(web-Fpcm6e_-) C:\project\web>pipenv install requests
Installing requests...
Adding requests to Pipfile's [packages]...
Installation Succeeded
Pipfile.lock (e4eef2) out of date, updating to (a290a1)...
Locking [packages] dependencies...
Locking...
Resolving dependencies...
Success!
Locking [dev-packages] dependencies...
Updated Pipfile.lock (a290a1)!
Installing dependencies from Pipfile.lock (a290a1)...
(web-Fpcm6e_-) C:\project\web>pipenv --venv
C:\Users\iveBo\.virtualenvs\web-Fpcm6e_-
安装不同版本的Python:
pipenv --python="python解释器路径"
(五) anconda
1、下载anaconda
- 官网下载 https://www.anaconda.com/products/individual#Downloads
- 仓库 https://repo.anaconda.com/archive/
- 清华镜像源 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
这里选择下载合适的版本,目前我python使用的是python3.8.5的版本,所以下载https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.11-Windows-x86_64.exe
这里我已经上传到百度云了,大家可以自行食用:
链接:https://pan.baidu.com/s/1xrPt99SaxeiOfURE7SNsJw
提取码:z0bk
2、安装
安装较为简单,基本就是一直next就可以了。需要注意的两个地方一个是安装
- 选择 All User选项

- 选择系统环境变量 选择第一个选项

3、配置
选择虽然安装完了,但是还需要配置镜像源,这和pip源是一样的,都需要配置,这样拉包比较快,查看:
anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
我们在用户家目录下新建一个.condarc文件,然后写入下面信息:
channels:
- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
此时所有的软件包都是从清华镜像源拉取。
运行 conda clean -i
清除索引缓存,保证用的是镜像站提供的索引。
4、使用
- 新建虚拟环境
conda create -n testEnv python=3.8.5
- 查看包
conda list
- 删除虚拟环境
conda remove -n testEnv --all
5、conda导出环境依赖
conda info --env
conda activate testEnv
conda env export > testEnv.yaml #进入虚拟环境后执行
conda env create -f testEnv.yaml # 创建该虚拟环境
(六) 虚拟机
1、引出问题
在windows电脑的虚拟机中安装自然语言处理的包NLTK:
pip install nltk
报错:building 'regex._regex' extension
需要在linux上安装ntlk。
CentOS和Linux的区别是什么
1、Linux是指操作系统内核,CentOS是指GNU/Linux操作系统。
2、Linux系统内核加上GNU提供的大量自由软件就是一个完整的GNU/Linux发行版,而CentOS就是众多发行版中的一个。
Linux只是一个操作系统内核而已,而GNU提供了大量的自由软件来丰富在其之上各种应用程序。因此,严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
基于这些组件的Linux软件被称为Linux发行版。一般来讲,一个Linux发行套件包含大量的软件,比如软件开发工具,数据库,Web服务器(例如Apache),X Window,桌面环境(比如GNOME和KDE),办公套件(比如OpenOffice.org),等等。
2、虚拟机的作用
- 进行一些软件的测试
- 安装不同的操作系统,比如Linux系列的系统
对于一些未知软件是否可用,没有把握性,不妨到虚拟机中进行测试,这样不会对宿主机造成影响。
而Linux系列的操作系统,比如:Centos、Ubuntu等操作系统
3、虚拟机的安装
如果要安装不同系统的镜像,那么我们需要为这些系统找一个壳子,比较好用的有VMware等,我们首先去官网下载:https://www.vmware.com/
这里我是用的是VMware Workstation Pro,你也可以下载VMware Workstation Player进行使用。
VMware可让你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。在虚拟网路,实时快照,拖曳共享文件夹,支持PXE等方面均有特别之处,使用vmware,用户可在单一的桌面上同时运行不同的操作系统,进行开发、测试、部署新的应用程序。
下载好的已经上传到网盘:
- OneDrive
- 百度网盘
链接:https://pan.baidu.com/s/1srAU-Y6nX42ijhwWQKeKcQ?pwd=zwis
提取码:zwis
这里点击许可证,输入密匙,网上分享的有很多,比如下面3个:
- ZF3R0-FHED2-M80TY-8QYGC-NPKYF
- YF390-0HF8P-M81RQ-2DXQE-M2UT6
- ZF71R-DMX85-08DQY-8YMNC-PPHV8
4、镜像
CentOS官方地址:https://www.centos.org/
CentOS文档地址:https://docs.centos.org/
CentOS论坛地址:https://forums.centos.org/
CentOS Wiki地址:https://wiki.centos.org/
5、安装系统
自动进行分区
6、网络配置
查看本机:
C:\Users\shenjianping>ipconfig
Windows IP 配置
无线局域网适配器 WLAN:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
无线局域网适配器 本地连接* 3:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
无线局域网适配器 本地连接* 12:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
以太网适配器 以太网:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::4570:3078:9425:9886%6
IPv4 地址 . . . . . . . . . . . . : 192.168.0.118
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.0.1
以太网适配器 VMware Network Adapter VMnet1:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::996f:7bf6:7d2c:6eb4%22
IPv4 地址 . . . . . . . . . . . . : 192.168.61.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
以太网适配器 VMware Network Adapter VMnet8:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::8899:2bba:dfc0:aa2b%13
IPv4 地址 . . . . . . . . . . . . : 192.168.111.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
以太网适配器 蓝牙网络连接:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static" #修改为static
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="aab5f723-024b-4829-bbfd-4010d7ff53a4"
DEVICE="ens33"
ONBOOT="yes" # 修改为yes
IPADDR=192.168.35.3 # 追加ip以及DNS信息
GATEWAY=192.168.35.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
重启网络:
service network restart
7、安装Anconda
- 直接下载
yum install wget
wget anconda地址
-
上传
安装mobaxterm
上传 anconda
安装 配置 anaconda
配置pip
mkdir ~/pip
vi ~/pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
8、安装ntlk
linux上的C++编译器叫g++,g++是gcc的一部分,默认情况下,我们的gcc编译器是没有安装的,这时就需要我们手动安装了。
查找下gcc包。
yum search gcc
yum install gcc-c++ -y
# 安装gcc
yum install gcc-c++ -y
# 安装nltk
pip install nltk
使用nltk
>>> import nltk
>>> sentence = """At eight o'clock on Thursday morning
... Arthur didn't feel very good."""
>>> tokens = nltk.word_tokenize(sentence)
>>> tokens
['At', 'eight', "o'clock", 'on', 'Thursday', 'morning',
'Arthur', 'did', "n't", 'feel', 'very', 'good', '.']
(七) 安装PyCharm
1、下载
2、安装
正常安装
3、基本配置
- 字体大小
- 解释器配置
- Git配置