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

Big Sur (Intel)安装 Python3 的正确姿势是什么

  •  
  •   xuegy · 2021-02-15 03:57:51 +08:00 · 2949 次点击
    这是一个创建于 1373 天前的主题,其中的信息可能已经有所发展或是发生改变。

    替代 Matlab 做数值计算用,最好能链接到 MKL 之类的库否则速度差太多,同时不想安装太多无关的包。

    1. Homebrew 安装
    2. Anaconda 安装
    3. python.org 安装
    4. 自己编译

    哪个最靠谱?

    第 1 条附言  ·  2021-02-15 08:59:54 +08:00

    感谢各位的建议,装了miniconda然后手动装numpy,scipy和matplotlib,查了show_config()确实是自带MKL,考虑到我的需求仅仅是代替Matlab,应该完全够用了。 然后又装了个VS Code,什么都没配置居然自动识别了miniconda,也没出现任何冲突。微软不愧为苹果最佳开发者。

    19 条回复    2021-02-17 21:25:22 +08:00
    Trim21
        1
    Trim21  
       2021-02-15 03:59:37 +08:00
    要链接 mkl 不需要特别的 python,需要特别的 numpy
    xuegy
        2
    xuegy  
    OP
       2021-02-15 04:03:53 +08:00
    @Trim21 所以随便装,然后 pip install ?
    Trim21
        3
    Trim21  
       2021-02-15 04:12:35 +08:00
    @xuegy 对,windows 下面有跟 mkl 编译的 numpy,我不知道 macos 上面有没有
    xuegy
        4
    xuegy  
    OP
       2021-02-15 04:15:13 +08:00
    @Trim21 这个办法应该是凉了
    $ pip3 install intel-numpy
    ERROR: Could not find a version that satisfies the requirement intel-numpy
    ERROR: No matching distribution found for intel-numpy
    Trim21
        5
    Trim21  
       2021-02-15 06:31:40 +08:00
    @xuegy #4 不是。。。。windows 下面 numpy+mkl 我是在 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 找到的,我不知道 macOS 下面有没有人编译好
    noqwerty
        6
    noqwerty  
       2021-02-15 07:20:51 +08:00
    Anaconda (Miniconda) 默认就是带 MKL 的
    IgniteWhite
        7
    IgniteWhite  
       2021-02-15 07:30:48 +08:00
    brew 安装 pyenv,然后用 pyenv 安装 miniconda,创建一个独立基于 miniconda 的 pyenv-virtualenv,在里面再用 miniconda 安装 mpl 等等你需要的包。

    1:为什么用 pyenv (或者其他你喜欢的 env 管理器)?
    和系统 python 的包混杂在一起简直是噩梦,在 venv 里做依赖隔离必不可少。

    2:关于 mkl 版本的 numpy,anaconda 几年前已经做好了 macOS 下 mkl 的兼容,所以我上面建议安装 miniconda,只有基本的 conda,没有安装任何你不想要的包。在里面 conda install -c conda-forge numpy 的版本就是 mkl 的。见 https://stackoverflow.com/a/32748758/10039621

    如果你想用 jupyter,欢迎参考我之前的帖子: /t/732571 这里分享的经历是我能想到最复杂的配置状况了。
    noqwerty
        8
    noqwerty  
       2021-02-15 08:03:00 +08:00
    @IgniteWhite #7 请问这里 pyenv 起到什么作用呢?我一直是直接用 Miniconda ( https://docs.conda.io/en/latest/miniconda.html) 或者 miniforge ( https://github.com/conda-forge/miniforge) 的,conda 本身不是已经起到了管理 Python 环境的功能了吗
    IgniteWhite
        9
    IgniteWhite  
       2021-02-15 08:10:27 +08:00
    @noqwerty 是的,直接用 conda env 也行的,实际上 pyenv 在建立 conda 虚拟环境的时候也会优先调用 conda 命令。我的建议仅供参考,看个人需求。我这边是有一个安装非 conda 版本 python 的需求,因为有些包没上 conda-forge 只在 pypi 上有,所以就用 pyenv 了
    noqwerty
        10
    noqwerty  
       2021-02-15 08:25:26 +08:00   ❤️ 1
    @IgniteWhite #9 哦哦这样,我跟你是反过来的😂我是在 conda 环境里又装了 pip,然后 conda-forge 上没有的包再用这个 pip 装
    renmu123
        11
    renmu123  
       2021-02-15 08:29:36 +08:00 via Android
    pyenv 是管理各个不同版本的 Python 版本,conda 是管理不同包的版本
    jimages
        12
    jimages  
       2021-02-15 08:32:58 +08:00 via Android
    pyenv 装 pypy,然后装一个 mkl,然后手动编译一个链接 mkl 的 numpy 。
    IgniteWhite
        13
    IgniteWhite  
       2021-02-15 08:38:41 +08:00
    @noqwerty
    @renmu123
    @jimages
    借楼问各位一个问题:conda 有个回滚的功能,能把单次改动里面新装的包和它依赖都回滚。不知 pip 有没有类似的功能?
    aydd2004
        14
    aydd2004  
       2021-02-15 10:42:30 +08:00
    我一直都是命令行直接输入 python3 系统直接帮我装完

    然后再根据需求装库
    zhouwb
        15
    zhouwb  
       2021-02-15 13:51:52 +08:00 via iPhone
    big sur 不是有自带 python3 吗?我平时不用,但我在终端里可以打出 p3 命令的
    alazysun
        16
    alazysun  
       2021-02-15 20:53:31 +08:00
    conda
    deetz
        17
    deetz  
       2021-02-15 23:33:22 +08:00 via iPhone
    @IgniteWhite 赞👍
    mortintojmax
        18
    mortintojmax  
       2021-02-17 18:19:36 +08:00
    去装 intel python 一套不就得了,啥都给你搞好了
    jeeyong
        19
    jeeyong  
       2021-02-17 21:25:22 +08:00
    依次安装
    brew -> pyenv -> pyenv install 3.7.9
    pyenv global 3.7.9

    如此....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5948 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:20 · PVG 10:20 · LAX 18:20 · JFK 21:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.