|
|
|
|
@ -0,0 +1,111 @@
|
|
|
|
|
# python版本管理(类似node的nvm)
|
|
|
|
|
- 安装
|
|
|
|
|
```bash
|
|
|
|
|
curl https://pyenv.run | bash
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 常用命令
|
|
|
|
|
```bash
|
|
|
|
|
pyenv install --list # 查看可安装版本
|
|
|
|
|
pyenv install 3.9.7 # 安装特定版本
|
|
|
|
|
pyenv versions # 查看已安装版本
|
|
|
|
|
pyenv global 3.9.7 # 设置全局版本
|
|
|
|
|
pyenv local 3.8.12 # 设置当前目录使用版本
|
|
|
|
|
pyenv shell 3.7.13 # 设置当前shell会话使用版本
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# python工程化poetry(node中的npm包管理和package包依赖)
|
|
|
|
|
- 全局安装poetry(类似node全局安装npm,yarn,pnpm)
|
|
|
|
|
```bash
|
|
|
|
|
pip install poetry
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 初始化工程(类似node执行npm init, 需要先cd到指定目录)
|
|
|
|
|
```bash
|
|
|
|
|
poetry init
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 安装依赖(类似node执行npm install package-name,一般用于自己开发时安装依赖)
|
|
|
|
|
```bash
|
|
|
|
|
# 安装到生产环境(默认)
|
|
|
|
|
poetry add package-name # 安装包(自动更新 pyproject.toml),package-name替换为自己需要安装的依赖名称,例如requests flask
|
|
|
|
|
# 安装到开发环境
|
|
|
|
|
poetry add package-name --dev # 安装包到开发环境(自动更新 pyproject.toml)
|
|
|
|
|
poetry add package-name -D
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 安装项目依赖(类似node执行npm install,一般用于拉取别人项目时安装依赖)
|
|
|
|
|
```bash
|
|
|
|
|
poetry install
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 运行项目(类似node执行npm run dev)
|
|
|
|
|
```bash
|
|
|
|
|
poetry run python main.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 手动编辑 pyproject.toml
|
|
|
|
|
```bash
|
|
|
|
|
# 你也可以直接修改 pyproject.toml 文件:
|
|
|
|
|
dependencies = [
|
|
|
|
|
flask = "^2.0.1" # 生产依赖
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
dev-dependencies = [
|
|
|
|
|
pytest = "^7.0.0" # 开发依赖
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
# 然后运行:
|
|
|
|
|
poetry lock # 更新锁文件
|
|
|
|
|
poetry install # 安装所有依赖
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 查看依赖(辅助)
|
|
|
|
|
```bash
|
|
|
|
|
# 查看所有依赖(生产 + 开发):
|
|
|
|
|
poetry show
|
|
|
|
|
# 查看生产环境依赖:
|
|
|
|
|
poetry show --no-dev
|
|
|
|
|
# 查看开发环境依赖:
|
|
|
|
|
poetry show --dev
|
|
|
|
|
|
|
|
|
|
# 查看生产环境依赖:
|
|
|
|
|
poetry show --only main
|
|
|
|
|
# 查看开发环境依赖:
|
|
|
|
|
poetry show --only dev
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 为什么我只安装了一个flask依赖,但是出现了zipp jinjia2等其他依赖
|
|
|
|
|
> 在 Python(或其他语言)的包管理中,直接安装一个包(如 flask)时,自动安装的其他包(如 jinja2、zipp 等)是该包的依赖项(Dependencies)
|
|
|
|
|
```bash
|
|
|
|
|
poetry show flask # 查看 flask 直接依赖
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 如何清理未使用的依赖
|
|
|
|
|
```bash
|
|
|
|
|
poetry show --unused # 列出未直接使用的依赖
|
|
|
|
|
poetry remove package_name
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# 常用命令
|
|
|
|
|
- 查看全局安装软件
|
|
|
|
|
```bash
|
|
|
|
|
pip list
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 查看全局安装软件位置
|
|
|
|
|
```bash
|
|
|
|
|
pip list show # 所有全局包安装位置
|
|
|
|
|
pip show requests # 查看某个包安装位置
|
|
|
|
|
```
|
|
|
|
|
- 查看python版本
|
|
|
|
|
```bash
|
|
|
|
|
python -V
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# 常用语法
|
|
|
|
|
- 判断数据类型
|
|
|
|
|
```python
|
|
|
|
|
x = 10
|
|
|
|
|
print(isinstance(x, int))
|
|
|
|
|
```
|