Fork me on GitHub

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

这里选择下载合适的版本,目前我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:

此时所有的软件包都是从清华镜像源拉取。

运行 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://iveboy-my.sharepoint.com/:f:/g/personal/shenjianping0307_iveboy_onmicrosoft_com/EmIJNgpGLc5OrYlnAEtIb-oBw6Pfiwy8Pt1oPwQalf_ccA

  • 百度网盘

链接: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/

华为镜像源:https://mirrors.huaweicloud.com/home

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地址

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配置
posted @ 2023-01-13 12:30  iveBoy  阅读(27)  评论(0)    收藏  举报
TOP