V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shoujiaxin
V2EX  ›  程序员

VS Code 更新后没法直接运行 Python 了

  •  
  •   shoujiaxin · 2017-12-16 00:24:51 +08:00 · 8014 次点击
    这是一个创建于 2528 天前的主题,其中的信息可能已经有所发展或是发生改变。

    正在调试 Python 3 的代码,然后 VS Code 自己更新了 1.19.0 版本,也没提示重启,但是弹出来了 Release Note,然后就发现运行不了代码了,提示

    Failed to launch the Python Process, please validate the path 'python3 '
    

    Error: spawn python3  ENOENT
    

    在此之前一直都是可以的,我一直在浏览网页,也没改什么。Python3 和 VS Code 都重新安装过,还是不行,用系统自带的 Python 2.7 倒是可以

    第 1 条附言  ·  2017-12-16 01:06:59 +08:00

    User Settings里的python.pythonPath配置的是python3,launch.json里的pythonPath${config:python.pythonPath}的话就会出错,在User Settings里配置完整路径也报错,必须要在launch.json里配置完整路径才行。

    但是这样的话每个文件夹都得重新配置一次,好麻烦,有没有什么别的办法。。。Python 3的环境变量没有动过,应该不会有问题吧,在VS Code更新之前也没遇到过这种问题

    第 2 条附言  ·  2017-12-16 09:37:57 +08:00

    大概发现是哪里的问题了,VS Code更新到1.19.0之后命令的路径好像不全了,少了 /usr/local/bin ,比如之前执行 python3 就可以运行脚本,现在命令必须写成 /usr/local/bin/python3 ,导致我代码里用 subprocess.call 参数方式执行的命令全废了。。。

    24 条回复    2017-12-16 21:40:18 +08:00
    shoujiaxin
        1
    shoujiaxin  
    OP
       2017-12-16 00:54:57 +08:00
    把`launch.json`里的`"${config:python.pythonPath}"`替换成`/usr/local/Cellar/python3/3.6.3/bin/python3`是解决了运行问题了
    但是好像这次更新完不能访问环境变量了?之前不用修改也是能运行的啊,奇怪
    CEBBCAT
        2
    CEBBCAT  
       2017-12-16 01:00:50 +08:00 via Android
    环境变量配置出错
    shoujiaxin
        3
    shoujiaxin  
    OP
       2017-12-16 01:08:59 +08:00
    @CEBBCAT 但是我 Python 3 的环境变量没有动过呀,在终端里也都是没问题的,在看到 VS Code 的 Release Note 之前 5 分钟还能运行,中间出了代码也没有改过别的东西,怀疑是更新过后权限出问题了
    likuku
        4
    likuku  
       2017-12-16 01:19:17 +08:00
    有 pyenv 么?
    shoujiaxin
        5
    shoujiaxin  
    OP
       2017-12-16 01:22:18 +08:00 via iPhone
    @likuku 没有,直接用 Homebrew 装的 3.6
    CEBBCAT
        6
    CEBBCAT  
       2017-12-16 01:22:58 +08:00 via Android
    错综复杂,树欲静而风不止啊 😆
    likuku
        7
    likuku  
       2017-12-16 01:25:15 +08:00
    @shoujiaxin 别这样...直接装新版,1 容易搞坏自带 py 2.版本和依赖一样难搞

    推荐用 pyenv 吧,至少昨天我新装的 VS Code 在 pyenv 环境的 python 3.6.3 下的 .py 直接 fn + F5 调试执行正常

    macOS 10.12.6
    likuku
        8
    likuku  
       2017-12-16 01:26:38 +08:00
    补充:VS Code 右键选择在终端下运行当前 .py 也正常
    shoujiaxin
        9
    shoujiaxin  
    OP
       2017-12-16 01:28:44 +08:00 via iPhone
    @likuku Homebrew 装 Python 3 和系统自带是完全分开的,不会影响吧。。。在此之前我调试也一直都正常,但是自动更新完不知道哪里出问题了,感觉像是 VS Code 配置的问题
    congeec
        10
    congeec  
       2017-12-16 03:12:24 +08:00   ❤️ 1
    @shoujiaxin 用 /usr/local/opt/python3/bin/python3,要不以后 python 升,级版本号会变,路径会失效
    SimbaPeng
        11
    SimbaPeng  
       2017-12-16 05:08:07 +08:00
    我也是,草
    shoujiaxin
        12
    shoujiaxin  
    OP
       2017-12-16 07:50:47 +08:00 via iPhone
    @SimbaPeng 你的也是更新过后就没法运行了吗?
    SimbaPeng
        13
    SimbaPeng  
       2017-12-16 08:05:37 +08:00
    shoujiaxin
        14
    shoujiaxin  
    OP
       2017-12-16 08:09:55 +08:00 via iPhone
    @likuku 你的 VS Code 和 Python 的插件是什么版本的呢?
    shoujiaxin
        15
    shoujiaxin  
    OP
       2017-12-16 08:17:16 +08:00 via iPhone
    @SimbaPeng 难受啊,不知道是 VS Code 的问题还是插件的问题,我重装了 1.18.1 也是这样
    shoujiaxin
        16
    shoujiaxin  
    OP
       2017-12-16 09:01:10 +08:00
    @congeec 多谢,用这个路径可以了。但是为什么升级之前路径写 python3 就可以,一升级就废了。。。好迷
    123s
        17
    123s  
       2017-12-16 09:38:45 +08:00
    我的 vue 全报错,妈蛋。
    shoujiaxin
        18
    shoujiaxin  
    OP
       2017-12-16 09:44:21 +08:00
    @123s 也是更新了 1.19.0 吗?你看看是不是路径的问题
    xiaoxinxiaobai
        19
    xiaoxinxiaobai  
       2017-12-16 09:47:32 +08:00 via Android
    只用来写,不用来调试。。。
    likuku
        20
    likuku  
       2017-12-16 11:09:28 +08:00
    @shoujiaxin 真抱歉,才发现我用的是 VS Code 是 1.18.x,早上更新到 1.19.0 也无法直接执行 .py 了,
    pyenv + python 3.6.3 一样不能执行了,看报错信息明显是直接调用了系统自带的 python 2.7
    likuku
        21
    likuku  
       2017-12-16 11:10:11 +08:00
    我还是安心用 Atom,同 #19 只用来写,不用来调试
    SimbaPeng
        22
    SimbaPeng  
       2017-12-16 20:04:35 +08:00
    这次更新好多问题啊,我的 yapf 也用不了了。。。
    shoujiaxin
        23
    shoujiaxin  
    OP
       2017-12-16 20:56:59 +08:00 via iPhone
    @SimbaPeng 估计都是路径的问题,配置里把路径补全试试。我用 autopep8,python 路径改好就可以用了
    Nioty
        24
    Nioty  
       2017-12-16 21:40:18 +08:00 via Android
    日常镚 我的 eslint 格式化也挂了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2630 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:19 · PVG 13:19 · LAX 21:19 · JFK 00:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.