首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
shirocheng
V2EX  ›  问与答

vscode Python 的提示与实际运行的路径冲突?

  •  
  •   shirocheng · 93 天前 · 890 次点击
    这是一个创建于 93 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如图,希望在二级文件夹下的 main.py 中导入同一文件夹下的 DHash.py 中定义的类

    vscode 提示的路径是相对工作区,而不是相对当前文件的

    而 Python 文件运行时是以当前文件为相对路径的,运行 main.py 出错: ModuleNotFoundError: No module named 'image_compare'

    需要这样写才行:

    求教:如何修复 vscode python 的路径提示?

    12 回复  |  直到 2019-12-06 10:49:16 +08:00
    renmu
        1
    renmu   93 天前 via Android
    加一个__init__. py
    yaming116
        2
    yaming116   92 天前 via iPhone
    @renmu 然而并不是,项目放到 pycham 运行好好的,已经添加了__init__,不知道为啥不行,暂时放弃了
    ipwx
        3
    ipwx   92 天前 via Android
    @yaming116 pycharm 自动帮你设置了 pythonpath 环境变量。剩下的请谷歌
    shirocheng
        4
    shirocheng   92 天前
    @yaming116
    是的,在 pycharm 上就没问题...奈何 vscode 比较轻量,还是想用 vscode 😂
    Trim21
        5
    Trim21   92 天前 via iPhone
    你把终端的 pwd 放到工作区去运行 main.py 应该就行了

    或者手动指定 pythonpath,在设置项里搜一搜,设置到工作区设置里
    CallMeReznov
        6
    CallMeReznov   92 天前
    你 vscode 里 python 插件安装后你设置 python 的路径没?
    linvaux
        7
    linvaux   92 天前 via Android
    set PYTHONPATH=$(pwd)
    shirocheng
        8
    shirocheng   92 天前
    @Trim21
    是的,以工作区打开就没问题了。。。
    请问 PythonPath 是指运行 Python 的路径吗,我的设置为:/usr/local/Caskroom/miniconda/base/envs/OpenCV/bin/python
    Trim21
        9
    Trim21   92 天前 via iPhone
    不是,你自己搜一下吧
    shirocheng
        10
    shirocheng   92 天前
    @Trim21
    嗯,终于在 issues 里搜到了。
    是在 python.envFile 对应的配置文件中,加上 PYTHONPATH=codeFolder 对吗?
    这样可以正确在对应目录下分析导入包了,不过不像 pycharm 会自动设置 PYTHONPATH,稍微有点不便
    shirocheng
        12
    shirocheng   53 天前 via iPhone
    https://segmentfault.com/a/1190000021046003
    vscode 文档中给出了很方便的解决方案,配置中添加需要解析的文件夹即可
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2331 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 13:29 · PVG 21:29 · LAX 05:29 · JFK 08:29
    ♥ Do have faith in what you're doing.