# 依赖管理

# 生成requirements.txt文件
pip freeze > requirements.txt

# 安装requirements.txt依赖
切换到虚拟环境控制台后再执行才能将包导入到虚拟环境
pip install -r requirements.txt
pip install --no-cache-dir -r requirements.txt

1
2
3
4
5
6
7
8

# Jupyter 编辑器

  • pip install jupyter
  • jupyter notebook // 运行jupyter
  • http://localhost:8888/tree //进入网站编辑

# 打包 模块发布

打包为*.whl文件(wheel轮子)可引入其他项目或上传到公共仓库用pip命令下载

需要setuptools 默认模块已安装

  • 打包

根目录创建setup.py文件

python setup.py sdist bdist_wheel

在dist目录生成tar.gz(sdist) 和whl包(bdist_wheel)

会有build目录生成

  • 使用

    1. 直接拷贝解压处理

    2. 直接进行模块的安装

      python setup.py install

      会在venv中"site-packages"m目录下生成*.egg文件

  • pypi项目发布

    pypi.org注册

    pip install twine

    • Windows用户根目录下创建.pypirc文件保存用户信息

      [pypi]

      username=登录用户

      password=登录密码

    twine upload dist/* // dist是*.whl文件目录

# 环境配置

# 虚拟环境

# 1.   配置虚拟环境时需要先有依赖
pip install virtualenv #下载到公共目录中了

# 2. 在项目中生成虚拟环境
virtualenv venv # 纯净的虚拟环境

# 3. 激活虚拟环境
   venv\Scripts\activate.bat

# 4. 退出虚拟环境
   venv\Scripts\deactivate.bat

然后在设置项目解释器里面配置解释器路径
5. pycharm里面设置里配置解释器路径
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 镜像源

# 查看当前源
pip config list
pip config list -v

# 常用镜像源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/

#####手动添加镜像源
pip install 下载的模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -i https://pypi.douban.com/simple/ pyinstaller #豆瓣源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller #清华源

# 永久配置镜像源
# 如果你只想为当前用户设置,你也可以去掉下面的"--global"选项
pip config --global set  global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config --global set install.trusted-host mirrors.aliyun.com
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# pip

# 查看pip 默认安装位置
python -m site

# 修改pip 默认安装位置
PS C:\Users\Administrator> python -m site -help
D:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site.py [--user-base] [--user-site]

# 修改 site.py里面路径
USER_SITE = "D:\ProgramData\Anaconda3\lib\site-packages"
USER_BASE = "D:\ProgramData\Anaconda3\Scripts"
1
2
3
4
5
6
7
8
9
10
pip --help

pip search pymysql //命令废弃
pip install pymysql
pip install --upgrade pymysql
py download pymysql //当前位置下载whl文件,可将后缀改为zip后解压看到文件内容
pip list // 已经安装的模块
pip list --outdated
pip uninstall pymysql -y //卸载 -y可以免去手工确认
1
2
3
4
5
6
7
8
9

# 目录规范

第一种:
工程
  - bin (程序入口)
  - conf (配置文件setting)
  - db (数据库)
  - lib (公共类库,基类之类的)
  - log (日志目录)
  - src (逻辑目录)
1
2
3
4
5
6
7
8
第二种:
项目名|-- bin
| |-- 启动脚本.py
|
|-- 项目名
| |-- tests
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|-— conf
|—- logs
|-- docs
| |-- conf.py
| |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
第三种:
Python通用目录结构
ProjectName
│ readme 项目说明文档
│ requirements.txt 存放依赖的外部Python包列表
│ setup.py 安装、部署、打包的脚本
├─ bin 存放脚本,执行文件等
│ └─ projectname
├─ docs 文档和配置
│ └─ abc.rst
│ └─ conf.py 配置文件
└─ projectname 工程源码(包括源码、测试代码等)
│ main.py 程序入口
│ init.py
└─ tests 测试代码
└─ test_main.py
└─ init.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
第四种:
1,bin目录:是整个应用程序的执行文件目录,其中start.py文件是启动入口
2,conf目录:是整个应用程序的配置文件目录,config.yaml是其中一个配置文件
3,core目录:是整个应用程序的核心模块,core.py是核心业务逻辑脚本文件
4,db目录:是整个应用程序的数据库文件目录
5,lib目录:是整个应用程序的通用功能脚本和第三方应用文件存放目录
6,log目录:是整个应用程序的日志文件目录
7,res目录:是整个应用程序的图标、图片、ui等目录
8,tests目录:是整个应用程序的测试文件目录
9,venv-win32目录:是整个应用程序的32位虚拟环境目录,用于运行和打包32应用程序
10,venv-win64目录:是整个应用程序的64位虚拟环境目录,用于运行和打包64应用程序
11,readme.txt:项目说明文档
12,requirements.txt:用于存放整个应用依赖的外部Python包列表
1
2
3
4
5
6
7
8
9
10
11
12
13
Foo/
|-- core/  # 存放业务逻辑相关代码
|   |-- core.py
|
|-- api/  # 存放接口文件,接口主要用于为业务逻辑提供数据操作。
|   |-- api.py
|
|-- db/  # 存放操作数据库相关文件,主要用于与数据库交互
|   |-- db_handle.py
|
|-- lib/  #  存放程序中常用的自定义模块
|   |-- common.py
|
|-- conf/  # 存放配置文件
|   |-- settings.py
|
|-- run.py  # 程序的启动文件,一般放在项目的根目录下,因为在运行时会默认将运行文件所在的文件夹作为sys.path的第一个路径,这样就省去了处理环境变量的步骤
|-- setup.py  #安装、部署、打包的脚本。
|-- requirements.txt  #  存放软件依赖的外部Python包列表。
|-- README  # 项目说明文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 文本规范检测

  • pylint第三方组件包, 可在pycharm配置鼠标右键执行文件

pip install pylint pylint unit.py //代码检查文件

  • flake8 官方测试包

    pip install flake8

    flake8 test.py