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

mac python3 莫名丢失,求大神帮忙

  •  
  •   geekyoung · 2018-09-15 14:44:53 +08:00 · 3173 次点击
    这是一个创建于 2259 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前两天实在厌烦 mac 每天提示更新,升级了系统,升级完一切正常。

    因为平时写 python3 都是在 pycharm 或 jupyter,也没意识到有啥问题, 今天需要在终端下运行 python3,突然发现 zsh: command not found: python3。。。

    这时候我去了 python3 的路径 /usr/local/Cellar/python3/3.6.1/bin/python3,发现使用./python3 还是能进去的,所以我以为是快捷方式丢了

    然后在网上搜索方案,乱试,在文件夹 /usr/local/Cellar/python3/3.6.1/bin/ 执行了 ln -s /usr/local/Cellar/python3/3.6.1/bin/python3 python3, 貌似没什么作用

    这时候悲催的发现,我再执行./python3,就进不去了,什么反应都没有,这时候发现 jupyter 和 pycharm 全挂了。。 怎么办啊,求大佬帮忙。

    22 条回复    2018-09-17 12:05:01 +08:00
    geekyoung
        1
    geekyoung  
    OP
       2018-09-15 14:49:45 +08:00
    python3 好像莫名奇妙地就没有了入口
    wohenyingyu03
        2
    wohenyingyu03  
       2018-09-15 14:50:23 +08:00 via iPhone
    快捷方式什么鬼……环境变量了解下?
    xinhangliu
        3
    xinhangliu  
       2018-09-15 14:50:27 +08:00 via Android
    没加到路径。在 `.zshrc` 写一行:
    ```
    export PATH="你的 Python 路径:$PATH"
    ```
    xinhangliu
        4
    xinhangliu  
       2018-09-15 14:52:47 +08:00 via Android
    或者 `brew link python3`
    geekyoung
        5
    geekyoung  
    OP
       2018-09-15 14:53:14 +08:00
    @wohenyingyu03 不好意思 有点急,表述有点错误。。现在是我去了那个目录,执行./python3 也没有反应
    geekyoung
        6
    geekyoung  
    OP
       2018-09-15 14:55:11 +08:00
    @xinhangliu

    ➜ bin ls
    2to3-3.6 idle3.6 pydoc3 python3-config python3.6m pyvenv-3.6
    easy_install-3.6 pip3 pydoc3.6 python3.6 python3.6m-config wheel3
    idle3 pip3.6 python3 python3.6-config pyvenv
    ➜ bin ./python3
    ➜ bin ./python3
    ➜ bin
    xinhangliu
        7
    xinhangliu  
       2018-09-15 14:55:15 +08:00 via Android
    @geekyoung 可执行文件都被你变成 link 了,当然没用。重装吧
    geekyoung
        8
    geekyoung  
    OP
       2018-09-15 14:55:46 +08:00
    @xinhangliu 你好,现在我去了这个目录,./python3 进不去,这可咋整
    guog
        9
    guog  
       2018-09-15 14:57:14 +08:00 via Android
    你在 Python 的 bin 目录执行的那条软连接命令应该会报文件已经存在的错误的。你试下用 brew reinstall python3.6 应该可以
    guog
        10
    guog  
       2018-09-15 14:58:58 +08:00 via Android
    @guog ls -al 看下文件
    lostberryzz
        11
    lostberryzz  
       2018-09-15 15:01:17 +08:00
    brew doctor 看一下
    geekyoung
        12
    geekyoung  
    OP
       2018-09-15 15:06:27 +08:00
    @guog 对,当时确实报“文件已经存在的错误”,所以我也感觉这个命令没有执行,但是后来我执行./python3 就进不去控制台了,所以我就很疑惑,我去试试
    geekyoung
        13
    geekyoung  
    OP
       2018-09-15 15:07:21 +08:00
    @lostberryzz Please note that these warnings are just used to help the Homebrew maintainers
    with debugging if you file an issue. If everything you use Homebrew for is
    working fine: please don't worry or file an issue; just ignore this. Thanks!

    Warning: A newer Command Line Tools release is available.
    Update them from Software Update in the App Store.


    Warning: Homebrew's sbin was not found in your PATH but you have installed
    formulae that put executables in /usr/local/sbin.
    Consider setting the PATH for example like so
    echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.zshrc

    Warning: Broken symlinks were found. Remove them with `brew prune`:
    /usr/local/bin/docker-credential-osxkeychain.backup
    /usr/local/bin/hyperkit.backup
    /usr/local/bin/notary.backup
    /usr/local/bin/vpnkit.backup
    /usr/local/etc/bash_completion.d/_brew_services
    geekyoung
        14
    geekyoung  
    OP
       2018-09-15 15:10:47 +08:00
    @guog

    drwxr-xr-x 19 dzzxjl admin 608 4 3 2017 .
    drwxr-xr-x 13 dzzxjl admin 416 9 10 10:58 ..
    lrwxr-xr-x 1 dzzxjl admin 56 3 21 2017 2to3-3.6 -> ../Frameworks/Python.framework/Versions/3.6/bin/2to3-3.6
    -rwxr-xr-x 1 dzzxjl admin 432 4 3 2017 easy_install-3.6
    lrwxr-xr-x 1 dzzxjl admin 53 3 21 2017 idle3 -> ../Frameworks/Python.framework/Versions/3.6/bin/idle3
    lrwxr-xr-x 1 dzzxjl admin 55 3 21 2017 idle3.6 -> ../Frameworks/Python.framework/Versions/3.6/bin/idle3.6
    -rwxr-xr-x 1 dzzxjl admin 236 5 9 20:23 pip3
    -rwxr-xr-x 1 dzzxjl admin 236 5 9 20:23 pip3.6
    lrwxr-xr-x 1 dzzxjl admin 54 3 21 2017 pydoc3 -> ../Frameworks/Python.framework/Versions/3.6/bin/pydoc3
    lrwxr-xr-x 1 dzzxjl admin 56 3 21 2017 pydoc3.6 -> ../Frameworks/Python.framework/Versions/3.6/bin/pydoc3.6
    lrwxr-xr-x 1 dzzxjl admin 55 3 21 2017 python3 -> ../Frameworks/Python.framework/Versions/3.6/bin/python3
    lrwxr-xr-x 1 dzzxjl admin 62 3 21 2017 python3-config -> ../Frameworks/Python.framework/Versions/3.6/bin/python3-config
    lrwxr-xr-x 1 dzzxjl admin 57 3 21 2017 python3.6 -> ../Frameworks/Python.framework/Versions/3.6/bin/python3.6
    lrwxr-xr-x 1 dzzxjl admin 64 3 21 2017 python3.6-config -> ../Frameworks/Python.framework/Versions/3.6/bin/python3.6-config
    lrwxr-xr-x 1 dzzxjl admin 58 3 21 2017 python3.6m -> ../Frameworks/Python.framework/Versions/3.6/bin/python3.6m
    lrwxr-xr-x 1 dzzxjl admin 65 3 21 2017 python3.6m-config -> ../Frameworks/Python.framework/Versions/3.6/bin/python3.6m-config
    lrwxr-xr-x 1 dzzxjl admin 54 3 21 2017 pyvenv -> ../Frameworks/Python.framework/Versions/3.6/bin/pyvenv
    lrwxr-xr-x 1 dzzxjl admin 58 3 21 2017 pyvenv-3.6 -> ../Frameworks/Python.framework/Versions/3.6/bin/pyvenv-3.6
    -rwxr-xr-x 1 dzzxjl admin 395 4 3 2017 wheel3
    geekyoung
        15
    geekyoung  
    OP
       2018-09-15 15:12:27 +08:00
    @xinhangliu 你好,我那条语句应该没有执行成功吧??
    enjoyCoding
        16
    enjoyCoding  
       2018-09-15 17:16:04 +08:00 via Android
    重启试一下 删掉重装试一下
    reus
        17
    reus  
       2018-09-15 17:18:03 +08:00
    mac 不也一样折腾。
    leconio
        18
    leconio  
       2018-09-15 18:23:02 +08:00 via Android
    我记得 ln -s 两个路径必须是绝对路径
    coderfox
        19
    coderfox  
       2018-09-16 20:20:49 +08:00
    ln

    Creates links to files and folders.

    - Create a symbolic link to a file (or folder):
    ln -s path/to/file path/to/symlink

    你命令写反了,重装吧
    neoblackcap
        20
    neoblackcap  
       2018-09-16 23:33:07 +08:00   ❤️ 1
    升级了之后 3.6.1 之类的版本变了,导致 shell 无法从 PATH 里面找到 python3,你要不创建一个软连接,要不将现有的 python3 目录加到你的 PATH 变量中去。
    至于你的 pycharm 里面环境无效了也是一样的道理,他们都是用的绝对路径,绝对路径指向的 python3 没有了,当然报错,你可以重新创建一个虚拟环境,或者用上面所述的创建软连接的方法替代
    geekyoung
        21
    geekyoung  
    OP
       2018-09-17 10:44:56 +08:00
    @neoblackcap 已重装,下次注意,谢谢。请问“升级了之后 3.6.1 之类的版本变了”怎么理解?
    neoblackcap
        22
    neoblackcap  
       2018-09-17 12:05:01 +08:00
    @geekyoung 就是 3.7 的 python 不会在 /usr/local/Cellar/python3/3.6.1/bin/,brew 将旧的卸载了,但是你之前的路径是写的绝对路径,新的 3.7 是在 /usr/local/Cellar/python3/3.7.1/bin/之类的路径嘛
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:10 · PVG 05:10 · LAX 13:10 · JFK 16:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.