Python_Ubuntu

Python

学习重点

Python 的 venv(环境管理)和 pip(包管理)
https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/

Python的资料

Python 项目结构
https://docs.python-guide.org/writing/structure/

Python常用的一些包:
内置的:json、io、os、itertools、xml
第三方的:requests(http客户端)、click(命令行程序)、openpyxl(excel)、pandas/numpy(数据分析)、re(正则)、Pyllow(图像)

Docker 上手,重点可看看exec run pull
https://www.docker.com/get-started/

实战风格的深度学习课程
https://course.fast.ai/

Ubuntu

Ubuntu是做什么的?

Ubuntu操作系统是一个基于Linux内核的自由、开源、免费的桌面和服务器操作系统。

Ubuntu的安装部署

修改ubuntu里默认镜像的来源

ubuntu镜像_阿里巴巴开源镜像站 (aliyun.com)进入阿里巴巴镜像站找到对应ubantu版本的镜像,注意codename要对应.

清华源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.back 备份当前的设置文件

vim /etc/apt/sources.list 使用vim把source.list中所有deb文件全部注释,把国内镜像复制

sudo apt update sudo apt upgrade 更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#阿里云ubantu镜像
deb https://mirrors.aliyun.com/ubuntu/ xenial main
deb-src https://mirrors.aliyun.com/ubuntu/ xenial main

deb https://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb https://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src https://mirrors.aliyun.com/ubuntu/ xenial universe
deb https://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb https://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-security main
deb https://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-security universe

安装aptitude来尝试自动解决依赖问题

sudo apt install aptitude

找到安装好的文件

which software

列出已安装的软件

Sudo apt list --installed

查看ubantu版本号

lsb_release -a

在ubuntu上安装谷歌中文输入法

sudo apt-get update && sudo apt-get install fcitx-googlepinyin im-config

​ 配置language support 选择fcitx , 重启电脑

​ 右上角键盘状态Configure里进入配置界面

使用xshell连接ubantu虚拟机

sudo apt install ssh 安装ssh服务

在ubuntu上安装vim

sudo apt-get install vim-gtk

apt update 与 apt upgrade的区别

apt update 命令只会获得系统上所有包的最新信息,并不会下载或者安装任何一个包。而是 apt upgrade 命令来把这些包下载和升级到最新版本。update与upgrade是组合使用.系统围绕着一个所有可用包的数据库(缓存)工作。注意,这个缓存(或者数据库)并不包含这些包本身,仅仅是关于包的元数据(版本、仓库、依赖).如果不更新这个数据库,系统就不会知道是否有更新的版本。

apt 与 apt-get的区别

​ apt-get,全称是Advanced Package Tool,用于Unix和Linux的应用程序管理器,目前普通用户使用apt即可,可以把apt看作是apt-get的子集,首要考虑使用apt即可.(场景: apt是人用,apt-get给脚本自动化使用,apt会输出进度条)

img

ubantu下载软件的位置

下载的软件一般放在 : /var/cache/apt/archives

要安装xxx.deb : dpkg -i /home/xxx.deb

安装过程遇到的问题

​ 1. 安装到选择地区步骤时显示不全

​ 方法1 : 拖动窗口即可

​ 方法2 : 首先在安装时try ubantu –> 修改分辨率到1280*768

​ 2. 如果黑屏(左上角有_)时间过长

​ 方法1 : 进入boot , 然后修改Hard Drive到最上边

​ 3.ubuntu设置super键盘

​ ``

Clash for linux(代理工具)

使用正则表达式来修改文件中的内容

Docker

Docker是做什么的?

Docker与K8s的关系

Docker的安装部署

Python

python的安装

​ 检查系统应用,更新到最新

1
2
3
4
5
6
# 刷新软件包目录
sudo apt update
# 列出当前可用的更新
sudo apt list --upgradable
# 如上一步提示有可以更新的项目,则执行更新
sudo apt upgrade

​ 安装依赖

​ GCC编译器 sudo apt install gcc

​ 安装其他依赖

sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev libncurses-dev libnspr4-dev

​ 提示找不到 –> 在software & 修改镜像源

​ 导入PPA –> deadsnakes团队维护了launchpad PPA 帮助ubuntu用户安装最新版本的python和附加模块

sudo add-apt-repository ppa:deadsnakes/ppa

Sudo apt list --installed

sudo apt install python3.9

​ 如果已经安装了其他版本的python

​ 将默认配置改为python3.9

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 200

​ 取消原来的默认python3的版本 改成python3.9

sudo mv /usr/bin/python3 /usr/bin/python3-old

sudo ln -s /usr/bin/python3.9 /usr/bin/python3

项目结构

主项目

​ – requirements.txt

​ – 主代码目录

​ – 子代码目录

​ – 测试代码目录

VSCode中使用Python进行开发

​ 安装VSCODE

​ 在VSCODE中安装Remote Development

​ 在VSCODe中安装PYTHON

​ Ctrl + Shift + P 输入 python: select interpreter , 选择Python环境

​ 创建文件夹 –> 创建python文件 –> 运行即可

自动生成文件头

Python中使用断点测试

​ alt+F5 进入python_debugger模式

step into / step out / step over 区别在于对子函数的debug方式不同

step into 单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数);

step out 当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。

step over 在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。

Python中使用单元测试

ctrl + shift + P 搜test

​ cd /code/test

​ pytest -vs 输出更详细信息

BlackFormmatter(格式化)的使用

针对反爬虫的解决方案

​ 1.request里设置cookies传入

​ 2.request里设置header传入

​ 3.使用selenium模拟客户端访问(重操作,需要访问)