问题
在使用VS Code调试Sawyer SDK的时候,发现不能进入Intera的环境下。如果是一般运行Sawyer的Python控制代码,需要先执行./intera.sh
进入SDK环境,再运行Python命令。这里可以把./intera.sh
加入.bashrc,但显然这不美观。
解决方案
修改intera.sh
这里首先观察intera.sh的内容,实际上是在执行时生成了一个rc文件的内容,保存在临时文件内,然后在以这个文件作为rc文件的前提下启动了一个新的bash。所以根据这一过程,我们为了保留rc文件产生的环境变量,需要修改intera.sh的内容,将最后的bash
改为source
,这样就可以在当前环境下进行source,而不是新建一个bash。
这里为了保持intera.sh的原始内容,我们将修改后的内容保存为intera_source.sh。
配置vscode
虽然我们已经将文件的命令改成了source,但是在VS Code中进行Python调试的时候,如果在preLaunchTask
直接设置source intera_source.sh
,依然不能保存环境变量,因为执行preLaunchTask的时候,VS Code会新建一个bash,而不是在当前bash下进行source。
所以我们需要在执行preLaunchTask的时候,将环境变量保存在一个文件中,然后在launch.json中的envFile
中指定这个文件,这样就可以在调试的时候使用这个文件中的环境变量了。
最后我们应该设置的launch.json如下:
1 | { |
并且添加上task.json
1 | { |
该内容采用 CC BY-NC-ND 4.0 许可协议,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。