VS Code中getcwd

VS Code中getcwd,第1张

问题描述:

我的需求是用Python调用C++,采用方式是把C++编译成一个动态链接库,再用Python调用,C++代码中存在getcwd()函数,获取当前的工作路径,再根据这个进行相对路径的编码,完成后续的工作。


在完成以上工作后,发现如果我使用命令行完成调用Python,是可以的,但是在VS Code中右下角选择想使用的Python解释器后,直接选择"Run Python File",发现执行结果与命令行的结果不一致。


原因解释:

按理说VS Code中用的terminal就等价于我用的终端,所以我就看里面执行的内容,我看到当我在VS Code中选择"Run Python File"后,terminal中显示了以下两行命令:

可以看到实际上就是用之前选择的路径下的python执行当前选中的.py文件,但是当前路径仍然是在VS Code打开的文件夹这个默认目录下的。


而我用命令行的时候,一般习惯是到了想执行的.py文件所在的文件夹下之后,再执行

conda activate XXX
python X.py

这样,那么当前执行目录自然就是这个.py文件所在的目录了。


为了检验我的想法的正确性,我在链接库对应的源代码中增加了输出路径的代码,结果如下:

命令行中的结果为:

 VS Code中的结果为:

可以看到我的想法是正确的。


解决方案:

很遗憾,我暂时没找到好的解决方案,就只能把源代码中的相对路径部分硬编码为绝对路径了,或者如果用VS Code执行比较多的话,那就对用到相对路径的部分进行相应修改。


感想:

本来以为是玄学问题,后来发现还是有科学依据的~

对解决这个问题提供一个角度,一家之言,供大家参考~ 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/577688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存