zoukankan      html  css  js  c++  java
  • 001-mac搭建Python开发环境、Anaconda、zsh兼容

    一、概述

    mac下搭建python环境推荐使用Anaconda+Pycharm。

    1.1、Anaconda

      Anaconda是一个免费开源的Python和R语言的发行版本,用于计算科学(数据科学、机器学习、大数据处理和预测分析),Anaconda致力于简化包管理和部署。Anaconda的包使用软件包管理系统Conda进行管理。超过1200万人使用Anaconda发行版本,并且Anaconda拥有超过1400个适用于Windows、Linux和MacOS的数据科学软件包。

    1.1.1、下载安装

      下载链接Anaconda官网

      直接根据默认地址选择安装好即可,选择完成后会自动配置环境变量。安装完成后可以在终端输入:conda list,测试环境变量是否配置成功。

      安装完成之后会在应用程序中出现Anaconda图标。进入查看即可。

    1.2、Jupyter Notebook

      Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。

      简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。

    1.2.1、安装

      Anaconda已经自动为你安装了Jupter Notebook及其他工具,还有python中超过180个科学包及其依赖项。

      在mac环境下,在终端中输入命令:Jupyter notebook之后,系统将会自动启动并打开浏览器。

    1.3、Pycharm

      安装也直接按照默认路径即可。但是安装过程需要注意:安装路径不要含有中文或空格

      项目创建:

        

       创建文件

        

       更多工具配置参看: Java-idea-安装配置优化等

    二、其他说明

    1、Anaconda3与zsh和oh my zsh兼容问题

    在上述1.1中安装完毕后,使用终端发现还是不能使用python3,

    $ python -V      
    Python 2.7.10
    
    $ python3 -V
    zsh: command not found: python3

    环境以及问题

      系统为macOS,且终端的shell为zsh

      安装的是Anaconda的图形化版本

      终端运行Anaconda下的命令,如conda时出现“command not found”的问题

    终端无法使用Anaconda的原因

      大部分人应该都是Anaconda的图形化版本,但在Mac系统下,Anaconda的安装程序并没有修改环境变量,这导致了我们在终端无法使用conda等命令。这是因为Anaconda默认安装在/Users/username的目录下,而终端中zsh的可访问的程序都放在/bin, /usr/bin, /usr/local/bin,有时也会放在~/bin目录下,因此我们需要修改zsh的.zshrc配置文件,将Anaconda的bin目录加到配置文件中去。

    解决步骤

      终端,修改zsh的.zshrc配置文件:

      echo 'export PATH="/Users/lihongxu6/opt/anaconda3/bin:$PATH"' >> ~/.zshrc

      source /Users/lihongxu6/.zshrc

      注意安装目录以及 用户名

      为了更好一点可以在上述成功后执行:conda init zsh

      此时测试:python3 -V 或者 conda -V 即可

    2、从Anaconda3无法打开终端

    $ /Users/mac/.anaconda/navigator/a.tool ; exit;
    /Users/mac/.anaconda/navigator/a.tool: line 1: syntax error near unexpected token `('
    /Users/mac/.anaconda/navigator/a.tool: line 1: `bash --init-file <(echo "source activate /Users/mac/opt/anaconda3;")'

    切换bash

    chsh -s /bin/bash

    然后可以正常Anaconda3打开,暂时没有找到 其他合适方案,有时在补充,使用完毕可以切换回来

    chsh -s /bin/zsh

    2.1、Anaconda、conda、pip、virtualenv的区别

    ① Anaconda

    Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。

    ② conda

    conda是包及其依赖项和环境的管理工具。

      适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
      适用平台:Windows, macOS, Linux

    用途:

      ① 快速安装、运行和升级包及其依赖项。
      ② 在计算机中便捷地创建、保存、加载和切换环境。

      如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本。——Conda官方网站
        conda为Python项目而创造,但可适用于上述的多种语言。
        conda包和环境管理器包含于Anaconda的所有版本当中。
    ③ pip

    pip是用于安装和管理软件包的包管理器。

      ▪ pip编写语言:Python。
      ▪ Python中默认安装的版本:
        ① Python 2.7.9及后续版本:默认安装,命令为 pip
        ② Python 3.4及后续版本:默认安装,命令为 pip3

    pip名称的由来:pip采用的是递归缩写进行命名的。其名字被普遍认为来源于2处:
      ① “Pip installs Packages”(“pip安装包”)
      ② “Pip installs Python”(“pip安装Python”)

    ④ virtualenv

    virtualenv是用于创建一个独立的Python环境的工具。

      解决问题:
        当一个程序需要使用Python 2.7版本,而另一个程序需要使用Python 3.6版本,如何同时使用这两个程序?如果将所有程序都安装在系统下的默认路径,如:/usr/lib/python2.7/site-packages,当不小心升级了本不该升级的程序时,将会对其他的程序造成影响。
        如果想要安装程序并在程序运行时对其库或库的版本进行修改,都会导致程序的中断。
        在共享主机时,无法在全局 site-packages 目录中安装包。

      virtualenv将会为它自己的安装目录创建一个环境,这并不与其他virtualenv环境共享库;同时也可以选择性地不连接已安装的全局库。
    ⑤ pip 与 conda 比较

    → 依赖项检查
    ▪ pip:
    ① 不一定会展示所需其他依赖包。
    ② 安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误。
    ▪ conda:
    ① 列出所需其他依赖包。
    ② 安装包时自动安装其依赖项。
    ③ 可以便捷地在包的不同版本中自由切换。
    → 环境管理
    ▪ pip:维护多个环境难度较大。
    ▪ conda:比较方便地在不同环境之间进行切换,环境管理较为简单。
    → 对系统自带Python的影响
    ▪ pip:在系统自带Python中包的更新/回退版本/卸载将影响其他程序。
    ▪ conda:不会影响系统自带Python。
    → 适用语言
    ▪ pip:仅适用于Python。
    ▪ conda:适用于Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。

    ⑥ conda与pip、virtualenv的关系
    ▪ conda结合了pip和virtualenv的功能。

     
  • 相关阅读:
    课后作业-阅读任务-阅读笔记-4
    《团队--学生成绩管理-阶段互评》
    《团队-学生成绩管理-阶段互评》
    团队编程项目作业4-开发文档
    阅读任务--阅读提问-3
    课后作业-阅读任务-阅读笔记3
    课后作业-阅读任务-阅读提问-3
    课后作业-阅读任务-阅读笔记-3
    结对编程项目作业5
    结对编程项目作业4
  • 原文地址:https://www.cnblogs.com/bjlhx/p/11940108.html
Copyright © 2011-2022 走看看