-
问题描述
python file.py
可以正常运行,对其进行debug
就出现如题问题:no such file or directory: '/home/user/.local/lib'
看运行路径,应该是
python
在进行os
路径检查. -
思路梳理
debug
一个文件的实际内容之前,vscode会先进行检查,出问题的函数是:home/user/anaconda3/lib/python3.8/posixpath.py
中# This will always return false on systems where os.lstat doesn't exist def islink(path): # Test whether a path is a symbolic link try: st = os.lstat(path) except (OSError, ValueError, AttributeError): return False return stat.S_ISLNK(st.st_mode)
OK,这里有几个关键字:
[posixpath.py, os.lstat, islink, stat, path, symbolic]
先看输入
path
和输出stat
这两个变量内部是什么:path
就是home/user/.local/lib
这个出问题的路径stat
是<module 'stat' from 'home/user/anaconda3/lib/python3.8/stat.py'>
那问题就转为研究关键字
(stat.py, posixpath.py)
,这两个模块就是问题所在,可以看到stat
是import stat
到posixpath.py
中到,所以问题的突破口就是这个posixpath.py
是干嘛的。《理解posixpath.py in Python》里讲了,
posixpath.py
就是POSIX system下os.path
这个常用module
的Source file。islink()
函数适用于判断路径是否symbolic link,《理解什么是symbolic link in Python》。前面梳理了一大堆,问题的核心就是os.path module用
islink()
函数判断path=/home/user/.local/lib
是否是软连接时出错,因为没有/home/user/.local/lib
这个路径。查看也确实没有,那这个路径是怎么来的。那就从vscode debug原理找突破。
扫描二维码关注公众号,回复: 12012896 查看本文章From Python debug configurations in Visual Studio Code, VS Code debug 会采用*.vscode/launch.json中的配置,那
path=/home/user/.local/lib
也多半是launch.json*指定的,先将其删除,重新debug
,问题解决。 -
解决方案
删除*.vscode/launch.json*文件,重新F5 dubug,问题解决。
launch.json 怎么设定
path=/home/user/.local/lib
参见Python debug configurations in Visual Studio Code, 后面空了再详解。 -
Reference
(20201024Solved)vsCode debug出现no such file or directory:‘/home/user/.local/lib‘
猜你喜欢
转载自blog.csdn.net/The_Time_Runner/article/details/109277059
今日推荐
周排行