VSCODE通过.env配置PYTHONPATH

问题描述

在近期基于VSCODE开发的Python项目中,由于子模块逻辑较为复杂,需要在子模块的路径下进行调试。

 文件目录结构如下:

+--- logic
|   +--- robot_mission_behaviors.py
|   +--- __init__.py
+--- robot_api
|   +--- Packaging.py
|   +--- robot_interface.py
|   +--- robot_tcp_socket.py
|   +--- __init__.py
+--- main.py

然而在VSCODE Terminal运行该子程序,就会出现如下ModuleNotFoundError报错:

(venv) E:\robot-execution-middleware\src\robot_execution_middleware\logic>python robot_mission_behaviors.py
Traceback (most recent call last):
  File "robot_mission_behaviors.py", line 5, in <module>
    from robot_api.robot_interface import RobotInterface
ModuleNotFoundError: No module named 'robot_api

查阅了几篇文章,回忆起这是一个典型的PYTHONPATH环境变量配置问题。

对于调试来说,最快的解决方案就是在待调试的程序的顶部增加如下语句:

import sys; sys.path.append("..")

该语句可以解决在子模块路径下不能import的问题。然而,在其他路径运行这个程序,问题还会存在。查阅了一些文章,设置PYTHONPATH的文章有很多。但在一个新的运行环境下,每次都需要重新配置下,这对于协作开发很不友好。本文想要找到一个能将PYTHONPATH配置固化下来的方案,这样同事拉取代码后,到子模块就可以直接运行调试,而不是再进行一遍配置。

研究了这篇通过.env文件配置PYTHONPATH文章,感觉其不够完美。一是其把.env文件隐藏到.vscode目录了,而该目录习惯上是不会托管到git的。另一个是该文章修改了setting.json,换一台机器运行还需要修改该文件。

解决方案

下面给出本文的思路:

1. 首先需要确认下,VSCODE默认去哪里读取.env文件。

  • 进入File->Preferences->Settings
  • 点开 Extensions->Python
  • 找到Env File配置
  • 这里可以看到,VSCODE默认在工程根目录${workspaceFolder}下寻找.env文件,这里我们不做修改,只是确认.env文件放在哪里VSCODE会默认执行 (本文基于默认配置进行环境变量设置,是为了确保重新拉取代码后,基于默认的配置依然能够生效)

2. 在${workspaceFolder}也就是项目根目录下创建.env文件。

3. 在.env增加如下环境变量配置:

PYTHONPATH="${workspaceFolder}\src\robot_execution_middleware;${env:PYTHONPATH}"
  • 由于采用了VSCODE内置环境变量${workspaceFolder},解决了用绝对路径设置PYTHONPATH时,工程路径迁移就要重新配置的问题
  • 注意${workspaceFolder}是工程的根目录,而不是Python的工程目录。如本文的Python工程目录是${workspaceFolder}\src\robot_execution_middleware
PYTHONPATH验证

在VSCODE Terminal下验证PYTHONPATH配置:

echo %PYTHONPATH% #Windows
echo $PYTHONPATH #Linux

结果如下:

(venv) E:\robot-execution-middleware>echo %PYTHONPATH% 
E:\robot-execution-middleware\src\robot_execution_middleware;
在Ubuntu系统上配置VSCode用于Python开发,通常需要安装Python解释器、VSCodePython扩展以及配置一些必要的环境变量。以下是配置的大致步骤: 1. 安装Python解释器: 打开Ubuntu的终端,使用包管理器安装Python。通常情况下,Ubuntu系统自带了Python 3解释器,可以通过以下命令检查安装的Python版本: ``` python3 --version ``` 如果没有安装Python,可以使用apt包管理器安装: ``` sudo apt update sudo apt install python3 ``` 2. 安装VSCode: 访问VSCode官网下载适用于Linux的安装包,并使用dpkg或apt命令安装: ``` sudo dpkg -i <下载的VSCode deb包> sudo apt install -f # 修复可能存在的依赖问题 ``` 3. 在VSCode中安装Python扩展: 打开VSCode,通过快捷键`Ctrl+Shift+X`打开扩展视图,搜索“Python”并安装Microsoft的Python扩展。这个扩展为Python开发提供了丰富的功能,如代码自动补全、调试、代码片段、导入模块提示等。 4. 配置Python解释器路径: 打开VSCode中的一个Python文件,它会自动检测系统中的Python解释器,并询问是否安装Python扩展。如果没有自动检测到,可以通过在项目目录下创建或编辑`.vscode/settings.json`文件来手动指定Python解释器路径: ```json { "python.pythonPath": "/usr/bin/python3" } ``` 其中`/usr/bin/python3`是Python解释器的实际路径,需要根据实际情况替换。 5. 配置其他环境变量: 如果Python项目需要特定的环境变量,可以在VSCode的`settings.json`文件中添加,例如: ```json { "python.envFile": "${workspaceFolder}/.env", "python.envFile참조": true } ``` 在项目根目录下创建`.env`文件,并设置环境变量: ``` MY_VAR=VALUE ``` 6. 安装其他依赖(如有需要): 根据Python项目依赖,可能需要安装如pip等工具,以及使用pip安装项目所需的Python包。 完成以上步骤后,应该就可以在VSCode中顺利进行Python开发了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值