一、项目的目录结构
推荐的 Python 项目目录结构
根目录
* README.md:项目描述、安装说明和用法
* requirements.txt:项目依赖项 (freeze < requirements.txt 生成;install -r .vscode/requirements.txt 安装)
* .gitignore:用于版本控制的忽略文件
源代码目录
*__init__.py:空文件,指示目录为 Python 包
main.py:程序的入口点
*其他 Python 源文件
测试目录
tests/:测试用例
conftest.py:测试固定装置
文档目录
docs/:项目文档
数据目录
data/:项目数据(例如,数据集、配置文件)
其他目录(可选
bin/:可执行文件
logs/:日志文件
scripts/:实用脚本
venv/:虚拟环境(如果使用)
其他注意事项
* 将相关文件分组到子目录中。
* 使用有意义的目录和文件名。
* 保持目录结构一致且易于导航。
* 考虑使用版本控制系统(例如 Git)来跟踪更改。
* 根据需要调整目录结构以满足特定项目的需要。
**示例目录结构**
my_project/
├── README.md
├── requirements.txt
├── .gitignore
├── src/
│ ├── __init__.py
│ ├── main.py
│ ├── other_module.py
├── tests/
│ ├── __init__.py
│ ├── test_main.py
├── docs/
│ ├── index.md
├── data/
│ ├── dataset.csv
├── bin/
│ ├── my_script.py
├── logs/
│ ├── my_log.txt
└── venv/
├── bin/
├── include/
├── lib/
└── pyvenv.cfg
二、虚拟环境配置
venv(虚拟环境)是 Python 中用于管理项目特定依赖项的工具。它允许您在隔离的环境中安装和管理 Python 包,而不会影响系统范围的安装。
venv 的优点:
隔离依赖项:每个 venv 都有自己的依赖项集,因此您可以为不同的项目使用不同的 Python 版本和包版本。
避免冲突:venv 防止不同项目之间的依赖项冲突,因为它们在隔离的环境中运行。
可移植性:您可以轻松地将 venv 连同项目一起分发,而无需担心依赖项兼容性问题。
易于管理:venv 易于创建、激活和删除,使您可以轻松地管理项目依赖项。
如何使用 venv:
1. **创建 venv:**使用 `python -m venv` 命令创建虚拟环境。例如:
```
python -m venv my_venv
```
2. **激活 venv:**使用以下命令激活 venv:
Windows:`my_venv\Scripts\activate`
macOS/Linux:`source my_venv/bin/activate`
3. **安装依赖项:**在激活的 venv 中,使用 `pip` 安装项目依赖项。例如:
pip install -r requirements.txt
4. 退出 venv:使用 `deactivate` 命令退出虚拟环境。
venv 的替代方案:
conda:一个更全面的环境管理系统,用于 Python 和其他语言。
pipx:用于在用户范围内安装和管理 Python 包的工具。
Docker:用于创建隔离的、可重复的环境的容器化平台。
何时使用 venv:
venv 对于以下情况非常有用:
* 当您需要为不同的项目使用不同的 Python 版本或包版本时。
* 当您希望避免依赖项冲突时。
* 当您需要在隔离的环境中测试代码时。
* 当您需要分发项目及其依赖项时。
三、.vscode设置
**.vscode** 目录是 Visual Studio Code (VS Code) 用于存储工作区特定设置和扩展配置的目录。它通常位于项目根目录中。
要配置 .vscode,您可以创建或编辑以下文件:
**settings.json**
* 包含用户首选项和 VS Code 设置。
* 例如,您可以配置主题、字体大小、键绑定和扩展设置。
**launch.json**
* 定义用于调试应用程序的启动配置。
* 例如,您可以指定要启动的脚本、调试器类型和断点。
**tasks.json**
* 定义用于自动化任务的构建任务。
* 例如,您可以配置 linting、测试和部署任务。
**extensions.json**
* 列出已安装的扩展及其设置。
* 例如,您可以禁用某些扩展或配置扩展的特定设置。
**keybindings.json**
* 定义自定义键盘快捷键。
* 例如,您可以创建自定义快捷键来触发命令或运行代码片段。
**snippets/**
* 存储代码片段,以便快速插入到编辑器中。
* 例如,您可以创建代码片段以生成常见的代码结构或函数。
**示例 .vscode 目录结构:**
```
.vscode/
├── settings.json
├── launch.json
├── tasks.json
├── extensions.json
├── keybindings.json
└── snippets/
├── my_snippet.json
```
**配置提示:**
* 使用注释来记录您的配置设置。
* 定期备份您的 .vscode 目录,以防丢失数据。
* 探索 VS Code Marketplace 以查找有用的扩展来增强您的开发体验。
* 查看 VS Code 文档以获取有关特定配置选项的更多信息。
**其他注意事项:**
* .vscode 目录通常被版本控制系统(例如 Git)忽略。
* 您可以通过在 VS Code 中转到“文件”>“首选项”>“设置”来打开 .vscode 目录。
* 您还可以使用“命令面板”(Ctrl/Cmd + Shift + P)来搜索和编辑 .vscode 中的文件。
四、项目内人员扩展的共享
在 VSCode 的 `.vscode/extensions.json` 文件中,推荐的扩展只能指定扩展的标识符,而不能指定具体的版本。VSCode 会自动安装最新版本的推荐扩展。
如果你确实需要指定扩展的具体版本,可以考虑以下替代方案:
### 1. 使用 `devcontainer.json` 文件
如果你使用 VSCode 的 Dev Containers 特性,可以在 `devcontainer.json` 文件中指定扩展的具体版本。
#### 示例:
```json
{
"name": "My Project Dev Container",
"image": "mcr.microsoft.com/vscode/devcontainers/python:3.9",
"extensions": [
"[email protected]",
"[email protected]",
"[email protected]"
]
}
```
### 2. 提供安装脚本
你可以编写一个脚本来安装指定版本的扩展。以下是一个示例脚本,使用 `code` 命令行工具安装特定版本的扩展:
#### 示例:
创建一个名为 `install-extensions.sh` 的脚本文件:
```sh
#!/bin/bash
# List of extensions to install with specific versions
extensions=(
"[email protected]"
"[email protected]"
"[email protected]"
)
# Install each extension
for extension in "${extensions[@]}"; do
code --install-extension $extension
done
```
确保脚本有执行权限:
```sh
chmod +x install-extensions.sh
```
然后其他人可以运行这个脚本来安装指定版本的扩展:
```sh
./install-extensions.sh
```
### 总结
虽然 `.vscode/extensions.json` 文件不支持指定扩展版本,但你可以通过使用 `devcontainer.json` 文件或者提供一个安装脚本来实现安装特定版本的扩展。这些方法可以确保团队成员使用一致的扩展版本。
五、虚拟环境
在VS Code中可以使用多种Python虚拟环境来管理项目依赖。以下是常用的几种虚拟环境及其使用方法:
### 1. `venv`
`venv`是Python标准库中的模块,用于创建轻量级的虚拟环境。
#### 创建虚拟环境:
```sh
python -m venv venv
```
#### 激活虚拟环境:
- **Windows**:
```sh
.\venv\Scripts\activate
```
- **Linux/Mac**:
```sh
source venv/bin/activate
```
#### 在VS Code中使用:
1. 打开VS Code。
2. 按`Ctrl+Shift+P`(Windows/Linux)或`Cmd+Shift+P`(Mac)打开命令面板。
3. 输入并选择`Python: Select Interpreter`。
4. 选择刚创建的虚拟环境(通常路径会包含`venv`)。
### 2. `virtualenv`
`virtualenv`是一个第三方库,提供了更多功能和兼容性选项。
#### 安装`virtualenv`:
```sh
pip install virtualenv
```
#### 创建虚拟环境:
```sh
virtualenv venv
```
#### 激活虚拟环境:
- **Windows**:
```sh
.\venv\Scripts\activate
```
- **Linux/Mac**:
```sh
source venv/bin/activate
```
#### 在VS Code中使用:
与`venv`相同,选择虚拟环境作为解释器。
### 3. `conda`
`conda`是一个开源包管理系统和环境管理系统,广泛用于数据科学和机器学习项目。
#### 安装`conda`:
下载并安装Anaconda或Miniconda。
#### 创建虚拟环境:
```sh
conda create --name myenv
```
#### 激活虚拟环境:
```sh
conda activate myenv
```
#### 在VS Code中使用:
1. 打开VS Code。
2. 按`Ctrl+Shift+P`(Windows/Linux)或`Cmd+Shift+P`(Mac)打开命令面板。
3. 输入并选择`Python: Select Interpreter`。
4. 选择刚创建的`conda`环境。
### 4. `pipenv`
`pipenv`是一个用于管理Python项目依赖的工具,结合了`Pipfile`和虚拟环境的功能。
#### 安装`pipenv`:
```sh
pip install pipenv
```
#### 创建和激活虚拟环境:
```sh
pipenv install
pipenv shell
```
#### 在VS Code中使用:
1. 打开VS Code。
2. 按`Ctrl+Shift+P`(Windows/Linux)或`Cmd+Shift+P`(Mac)打开命令面板。
3. 输入并选择`Python: Select Interpreter`。
4. 选择`pipenv`的虚拟环境(路径通常包含`.venv`)。
### 5. `pyenv` + `pyenv-virtualenv`
`pyenv`是一个Python版本管理工具,`pyenv-virtualenv`是其插件,用于创建虚拟环境。
#### 安装`pyenv`和`pyenv-virtualenv`:
根据操作系统不同,安装步骤略有不同,可以参考[pyenv安装指南](https://github.com/pyenv/pyenv)。
#### 创建虚拟环境:
```sh
pyenv install 3.8.10 # 安装特定版本的Python
pyenv virtualenv 3.8.10 myenv
```
#### 激活虚拟环境:
```sh
pyenv activate myenv
```
#### 在VS Code中使用:
1. 打开VS Code。
2. 按`Ctrl+Shift+P`(Windows/Linux)或`Cmd+Shift+P`(Mac)打开命令面板。
3. 输入并选择`Python: Select Interpreter`。
4. 选择`pyenv-virtualenv`的虚拟环境。
### 总结
无论使用哪种虚拟环境,确保在VS Code中选择正确的Python解释器是关键。通过上述步骤,你可以轻松在VS Code中使用各种Python虚拟环境来管理项目依赖。
六、其他依赖管理
使用requirements.txt描述,使用任务等进行管理安装
使用.sh脚本安装(windows下运行.bat)
标签:venv,VSCode,配置,Python,####,python,json,虚拟环境,Code From: https://www.cnblogs.com/xietianjiao/p/18372366