如何通过VSCode tasks运行Python模块命令,调用虚拟环境的alembic
问题原因
VSCode执行shell类任务时默认不会自动激活项目的虚拟环境,虚拟环境中安装的alembic路径不在当前shell的PATH变量里,就会触发command not found报错。
解决方案
以下两种方案二选一即可:
- 方案1:直接调用虚拟环境内的alembic(兼容性最好)
可以选择直接指向虚拟环境内的alembic可执行文件,或者通过虚拟环境的python调用alembic模块,无需考虑不同终端的激活逻辑差异:- macOS/Linux环境alembic默认路径:虚拟环境目录/bin/alembic
- Windows环境alembic默认路径:虚拟环境目录\Scripts\alembic.exe
完整配置示例(假设虚拟环境放在子目录my_sub_directory下的venv文件夹中,macOS/Linux):
{ "version": "2.0.0", "tasks": [ { "label": "Alembic autogenerated revision", "type": "shell", "command": "${workspaceFolder}/my_sub_directory/venv/bin/python -m alembic revision --autogenerate -m init", "options": { "cwd": "${workspaceFolder}/my_sub_directory" } } ] } - 方案2:先激活虚拟环境再执行命令
在命令前拼接虚拟环境激活语句即可,不同终端对应命令不同:- macOS/Linux bash/zsh:
source venv/bin/activate && alembic revision --autogenerate -m init - Windows PowerShell:
venv\Scripts\Activate.ps1 && alembic revision --autogenerate -m init - Windows cmd:
venv\Scripts\activate.bat && alembic revision --autogenerate -m init
- macOS/Linux bash/zsh:
注意事项
如果你的虚拟环境存放路径和示例不同,替换配置中对应的虚拟环境路径即可。
内容的提问来源于stack exchange,提问作者JD Solanki
相关产品推荐
相关产品推荐

