最近我在用Macbook Pro练习PyTorch的时候,发现明明在终端已经用pip安装了PyTorch,但在pycharm运行时总是报错:No module named torch. 但是我把同样的代码用Spyder跑就没有问题,感动很费解,找了很多资料,终于弄明白了。原来Pycharm、Spyder和终端用的不是同一个环境,在终端安装的地方没有用在pycharm里面。

  下面记录一下解决办法:

1、安装Anaconda3之后,有一个Anaconda Navigator应用程序,打开它,可以在其中的左侧边栏看到Environments这一个Tab,点击Environments 会列出由Anaconda管理的环境列表(把鼠标悬停在任意一个环境名称上,将会显示出该环境所在的目录路径,如/anaconda3/envs/my_workspace,这个目录可用于后续配置pycharm的运行环境),环境列表右侧是每个环境包含的python包列表【每个环境就类似一个独立的运行空间(与docker, virtualenv等概念类似),我们可以在一个环境中安装我们需要的其他第三方python包,如pandas,scikit-learn等】,我们写的项目代码需要选择一个环境作为依托。

2、安装完Anaconda之后,打开Mac端,命令行的前缀会变成(base)Mac主机名:~当前用户名$,其中的base就是Anaconda的其中一个Environment, 就是当前被选中的Python运行环境,也是Anaconda Navigator的环境列表中的第一项。

3、管理Conda环境的方法有两种:
(1)通过Anaconda Navigator的图形界面,创建、删除环境
(2)通过Mac的命令行终端程序(terminal)输入conda命令来创建、激活、删除环境(conda命令的使用方法可参考: 使用conda管理python环境我推荐使用conda命令,因为速度快。

4、选定一个环境之后,怎么在其中安装、卸载python包,如pandas、tensorflow?有三种途径:
(1)在终端利用conda命令:conda install 包名,或conda install 包名==包的版本号,如安装tensorflow2.0.0,可使用conda install tensorflow==2.0.0
具体方法可参考:https://zhuanlan.zhihu.com/p/22678445 ,如果conda install时提示找不到指定的包,则需要添加Python包的源,国内可使用清华的源,前面的链接也有添加源的方法。
(2)在终端适用pip,如pip install 包名==版本号,pip uninstall 包名。
(3)在Anaconda Navigator的图形界面进行安装、删除python包的操作。但其操作效率不如前两种命令行的方式快。

5、决定是否需要创建额外的环境:

(1)如果开发工具使用Anaconda自带的Spyder,那么你无需在Anaconda Navigator或使用conda命令额外配置环境,使用默认的环境(base)即可,如需安装第三方python包,通过conda或pip命令即可。
(2)如果使用PyCharm作为开发工具,则需要在base之外,再创建一个自定义的环境(使用conda命令或Anaconda Navigator)。再在pycharm进行设置使用这个自定义的环境。
使用conda命令创建自定义环境(如命名为my_workspace)之后,在pycharm Mac版中,点击电脑左上角的pycharm按钮,再Preferance-Project:我的工程名称->Project Interpreter->在右侧的Project Interpreter下拉框的右侧->Select All...->左下角的加号->选择左侧的Conda Enviroment->单选Existing Environment->设置Interpreter的路径为我们在Anaconda Navigator中看到的my_workspace环境的路径(如本文的第1部分所述)【注意:进入该目录之后,需要继续往下找,找到其中的python可执行文件,因此完整路径为/anaconda3/envs/my_workspace/bin/python3.7 】,再点击OK即可。

这样,以后如果这个工程再需要安装任何python包都可以通过conda命令和Anaconda Navigator来进行安装管理。

设置Mac终端、pip、Anaconda、PyCharm共用一套环境的更多相关文章

  1. mac终端命令及pycharm常用快捷键记录

    mac终端命令: 1.root权限 $sudo su - 2.定位到指定文件夹位置 $cd /Users/计算机名称/Desktop     (定位到桌面) 3.新建文件夹 $mkdir 文件夹名称 ...

  2. 设置Mac 终端走代理

    1.打开终端执行:export http_proxy=socks5://127.0.0.1:1080 这个只能在当前终端执行一次退出后就需要重新设置 如果需要开机自动设置,把上面的代码加到~/.bas ...

  3. Mac 终端—不同文件不同颜色显示,提示文字

    原文地址 修改Mac终端(Terminal)里不同类型文件的显示颜色 修改Mac终端(Terminal)的提示文字 Mac终端显示/隐藏文件命令 1. 修改Mac终端(Terminal)里不同类型文件 ...

  4. mac 终端 使用 solarized 主题设置语法高亮

    mac 终端 使用 solarized 主题设置语法高亮 先来看看 solarized 在 mac 终端上的效果图片 一:先下载 solarized 官网下载:https://github.com/a ...

  5. Mac 终端命令使用自动补全时忽略大小写设置

    Mac 终端在使用 tab 补全命令时默认大小写敏感,通过以下设置方法可以忽略大小写,方法同样适用于 iTerm2. 打开终端输入以下命令: nano .inputrc 将以下命令复制进去: set ...

  6. MacOS上安装Anaconda+Pycharm+TensorFlow+Keras

    一.安装Anaconda 登录https://www.anaconda.com/download/#macos,下载Anaconda3-5.3.1-MacOSX-x86_64.pkg 二.安装Pych ...

  7. python+anaconda+pycharm的使用

    研一开学的时候开始接触了这些,但是对于其各种功能感到十分混乱,现在通过这篇博文将其功能详细的写出来. 1.python解释器 首先要了解python解释器,我们俗称的下载python也就是下载pyth ...

  8. Anaconda Pycharm 是怎么个事儿?

    前言 许多人学习Python的经历可能很相似,写程序没有问题,最后却被各种环境困扰. 不论你是Python小白,还是学习Python有一段时间了.都可以认真的看一下ヾ(≧▽≦*)o 这篇文章让你对An ...

  9. 从mac终端创建cocos2d-x项目在xcode和eclipse正常运行环境配置

    一.创建可以同时运行在xcode和eclipse的项目: 1.打开mac终端,进入cocos2d-x目录下的tools/project-creator,执行命令./create_project.py ...

随机推荐

  1. 一个epoll的简单例子

    epoll事件机制的触发方式有两种:LT(电平触发)和ET(边沿触发) EPOLLIN事件: 内核中的socket接收缓冲区 为空(低电平) 内核中的socket接受缓冲区 不为空(高电平) EPOL ...

  2. Java——Java面向对象

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 概述: Java是面 ...

  3. Java——Spring整合Mybatis(IDEA版)

    本文适用于初学者: 该文主要教大家如何整合spring和mybatis,整合完成效果,可以从数据库中查询出学生信息: 完整的工程目录如下: 整合思路: 需要spring来管理数据源信息. 需要spri ...

  4. bootstrap 怎么制作好看的表格

    bootstrap 怎么制作表格 bootstrap 制作表格带有图文形式.主要知识点有以下几点 第一点肯定是写出一个普通的表格,这一点可以去菜鸟复制它的案例.添加tr和td就可以了 在表格放入图片加 ...

  5. React Native超简单完整示例-tabs、页面导航、热更新、用户行为分析

    初学React Native,如果没有人指引,会发现好多东西无从下手,但当有人指引后,会发现其实很简单.这也是本人写这篇博客的主要原因,希望能帮到初学者. 本文不会介绍如何搭建开发环境,如果你还没有搭 ...

  6. Spring学习笔记(八)Spring Data JPA学习

    ​ jpa简单的命名规则如下,这个不多做介绍,放在这里也是给自己以后查找起来方便,这篇文章主要介绍之前一直忽略了的几个点,像@NoRepositoryBean这个注解,以及怎么自定义Repositor ...

  7. 测试开发专题:spring-boot统一异常捕获

    java异常介绍 异常时相对于return的一种退出机制,可以由系统触发,也可由程序通过throw语句触发,异常可以通过try/catch语句进行捕获并处理,如果没有捕获,则会导致程序退出并输出异常栈 ...

  8. asp.net core计划任务探索之hangfire+redis+cluster

    研究了一整天的quartz.net,发现一直无法解决cluster模式下多个node独立运行的问题,改了很多配置项,仍然是每个node各自为战.本来cluster模式下的各个node应该是负载均衡的, ...

  9. JAVA实现拼手气红包算法

    实现拼手气红包算法,有以下几个需要注意的地方: 抢红包的期望收益应与先后顺序无关 保证每个用户至少能抢到一个预设的最小金额,人民币红包设置的最小金额一般是0.01元,如果需要发其他货币类型的红包,比如 ...

  10. 经典sql语句大全,【转载】

    经典SQL查询语句大全   一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql se ...