centos7编译安装python3.12
升级ssl
安装python3.12
windows安装poetry
- 通过官网下载
https://www.python.org/downloads/
,https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe
- 直接下安装包,使用自定义安装,选择好路径后,一路安装即可,注意勾选添加环境变量。
- 安装好python后,打开cmd,输入
pip install pipx
,pipx install poetry
centos7.6安装poetry
- 见 【jenkins -> python配置】章节.
pycharm调试
- 在控制台安装好poetry
- 在项目根目录使用
poetry shell
,(项目一般已经有pyproject.toml
文件) - 安装项目依赖环境
poetry install
,如果提示需要更新lock文件,用poetry lock
install
成功后,pycharm的执行配置里面,python解释器选择 当前目录/.venv/Scripts/python.exe
。仅需要配置这一项即可。 - 配置里面的Script即需要执行的python文件,例如
python main.py
,也可以选择模块,例如python -m app.main
。 - 启动
app.py
来启动flask与启动flask模块
作用一致,python -m flask run
启动 Flask 内置的开发服务器,它会查找名为 app.py
或者wsgi.py
的文件,默认寻找这些文件来导入 Flask 应用实例。
python模块化编程
- 模块化编程是一种组织代码的方法,通过将代码分割成多个独立的文件(模块);
模块定义
- 模块:一个 .py 文件就是一个模块。模块可以包含变量、函数、类等定义。
- 导入模块:使用 import 关键字可以从其他模块中导入定义。
模块搜索路径
- 依次从以下目录搜索模块:
- 当前目录
- PYTHONPATH 环境变量指定的目录
- 标准库目录
- 第三方库目录
from .app_config import DifyConfig
中的.表示当前目录搜索模块,使用相对路径
包与__init__.py文件
- 在一个目录中创建 init.py 文件可以将其转换为一个包(package)。包可以包含多个模块。
- init.py 文件可以为空,也可以包含初始化代码。
包的使用
- 使用 from package import module1, module2, ... 可以导入包中的多个模块。
- 使用 import package 可以导入整个包,并使用 package.module1、package.module2 等方式访问模块。
模块的初始化与缓存
- 模块被导入时,其中的代码会被执行一次。通常用于初始化模块级别的变量或设置。
- 模块中的 if name == "main": 块只有在直接运行该模块时才会执行,而不会在导入时执行。
- Python 会缓存已经导入的模块,因此多次导入同一个模块只会执行一次初始化代码
python中的关键字
控制流关键字
- if:用于条件判断。
- elif: 相当于else if。
- else: 用于条件判断的默认分支。
- for: 用于循环。
- while: 用于循环。
- break: 用于终止循环。
- continue: 用于跳过当前循环的剩余部分,继续下一次循环。
- pass: 用于占位符。
函数和类关键字
- def:定义函数。
- class:定义类。
- return:返回值。
对象和属性操作关键字
- self:类方法中的第一个参数,表示当前对象。
- super: 调用父类方法
异常处理关键字
- try: 尝试执行代码块。
- except: 处理异常。
- finally: 无论是否发生异常,都会执行。
- raise: 抛出异常。
其他关键字
- import:导入模块。
- from ... import ...:从模块中导入定义。
- as:给导入的模块或对象起一个别名。
- assert:断言。
- lambda:匿名函数。
- global:声明全局变量。
- nonlocal:声明非局部变量。
- del: 删除对象
- yield: 定义生成器函数
- async: 定义异步函数
- await: 在异步函数中等待异步操作
布尔关键字
- and: 逻辑与
- or: 逻辑或
- not: 逻辑非
- True: 真值
- False: 假值
- None: 空值