折腾:
【未解决】自己写Python脚本同步印象笔记到WordPress
期间,去用VSCode去调试Python的代码,此处是印象笔记的示例代码
/Users/crifan/dev/dev_root/python/EvernoteToWordpress/EvernoteToWordpress/libs/evernote-sdk-python3/sample/client/EDAMTest.py
结果报错:


发生异常: ModuleNotFoundError No module named 'evernote' File "/Users/crifan/dev/dev_root/python/EvernoteToWordpress/EvernoteToWordpress/libs/evernote-sdk-python3/sample/client/EDAMTest.py", line 13, in <module> import evernote.edam.userstore.constants as UserStoreConstants
去加上路径
import os import sys sys.path.append(os.getcwd()) sys.path.append("..") sys.path.append("../..") sys.path.append("../../lib")
竟然还报错:

然后觉得没错啊。
并且示例代码中注释中也是类似说法:
# To run (Unix): # export PYTHONPATH=../../lib; python EDAMTest.py
而此处用sys.path.append是之前就用过的,不会出错的。
后来突然想到了:
是由于当前提调试期间,当前目录是项目根目录
从log中
➜ EvernoteToWordpress /Users/crifan/.local/share/virtualenvs/EvernoteToWordpress-PC3x4gk8/bin/python /Users/crifan/.vscode/extensions/ms-python.python-2019.11.50794/pythonFiles/ptvsd_launcher.py --default --client --host localhost --port 52992 /Users/crifan/dev/dev_root/python/EvernoteToWordpress/EvernoteToWordpress/libs/evernote-sdk-python3/sample/client/EDAMTest.py
可以看出是,当前目录是:
/Users/crifan/dev/dev_root/python/EvernoteToWordpress/EvernoteToWordpress/
而不是以为的:
/Users/crifan/dev/dev_root/python/EvernoteToWordpress/EvernoteToWordpress/libs/evernote-sdk-python3/sample/client/
但是代码中的:
. .. ../lib
等路径,都是以 EDAMTest.py所在目录所说的。
所以去改为:
# sys.path.append("lib") # sys.path.append("libs/evernote-sdk-python3") sys.path.append("libs/evernote-sdk-python3/lib") sys.path.append("libs/evernote-sdk-python3/lib/evernote") sys.path.append("libs/evernote-sdk-python3/lib/thrift")
再去调试看看
果然可以正常调试了:

【总结】
VSCode调试时,默认是当前项目根目录
所以后续想要添加路径去找到某个库,要注意路径写法。
此处就是:
对于:
/Users/crifan/dev/dev_root/python/EvernoteToWordpress/EvernoteToWordpress/libs/evernote-sdk-python3/sample/client/EDAMTest.py
调试时,想要添加:
/Users/crifan/dev/dev_root/python/EvernoteToWordpress/EvernoteToWordpress/libs/evernote-sdk-python3/lib/evernote
不能写成:
sys.path.append("../../lib")
而其实是
sys.path.append("libs/evernote-sdk-python3/lib/evernote")
转载请注明:在路上 » 【已解决】VSCode中调试Python报错:ModuleNotFoundError No module named evernote