79

我的 Linux (Ubuntu 14.04) 机器上运行了 Pycharm 4。除了系统 python,我还安装了 Anaconda。让两者很好地结合在一起似乎有点问题……PyCharm 为virtualenvs 和提供了一些有趣的集成pip,但 Anaconda Python 发行版似乎更喜欢在这两个活动中使用自己的conda工具。

是否有一种相对简单/无痛的方式可以conda与 PyCharm 结合使用?不仅仅是作为替代解释器,即在项目解释器的 Anaconda Python 二进制文件中指向 PyCharm,而且能够创建、获取/激活和停用虚拟环境,在这些虚拟环境中添加/删除包等。

还是我必须在使用 Anaconda(并且拥有比系统附带的更新和最新的 Python)和能够最大程度地使用 PyCharm 的功能之间做出选择?

4

5 回答 5

98

我知道已经晚了,但我认为澄清一下会很好:PyCharm 和 Conda以及 pip可以很好地协同工作。

简短的回答

只需从命令行管理 Conda 。PyCharm 一旦发生变化就会自动注意到变化,就像它对pip所做的那样。

长答案

创建一个新的 Conda 环境:

conda create --name foo pandas bokeh

这种环境下生活conda_root/envs/foo。你的 python 解释器conda_root/envs/foo/bin/pythonX.X和你所有的站点包都在conda_root/envs/foo/lib/pythonX.X/site-packages. 这与 pip 虚拟环境中的目录结构相同。PyCharm 没有发现任何区别。

现在要从 PyCharm 激活您的新环境,请转到文件 > 设置 > 项目 > 解释器,在项目解释器字段(小齿轮)中选择添加本地并搜索您的 python 解释器。恭喜!你现在有了一个带有熊猫和散景的 Conda 环境!

现在安装更多软件包:

conda install scikit-learn

好的...在设置中返回您的口译员。神奇的是,PyCharm 现在看到了 scikit-learn!

反之亦然,即当你在 PyCharm 中 pip 安装另一个包时,Conda 会自动注意到。假设您已经安装了请求。现在列出当前环境中的 Conda 包:

conda list

该列表现在包括请求,并且 Conda 已正确检测到(第 3 列)它是使用 pip 安装的。

结论

对于像我这样在包不是纯 python 时试图摆脱 pip/virtualenv 安装问题的人来说,这绝对是个好消息。

注意:我在 Linux 上运行 PyCharm 专业版 4.5.3。对于 Windows 用户,将命令行的替换为 GUI 中的(并将正斜杠替换为反斜杠)。没有理由它也不适合你。

编辑: PyCharm5 在 Conda 支持下推出!在社区版中也是如此。

于 2015-08-11T08:53:08.213 回答
21

~/anaconda2/python/bin通过转到 将项目解释器更改为File -> Settings -> Project -> Project Interpreter。同时更新运行配置以使用项目默认的 Python 解释器,通过Run -> Edit Configurations. 这代替了默认的 Python 解释PyCharm器。Anacondausr/bin/python27

于 2016-03-01T13:41:04.447 回答
12

根据@cyberbikepunk 的回答,pycharm 自 pycharm5 起就支持 Anaconda!

看看添加环境是多么容易: 在此处输入图像描述

于 2017-08-02T17:15:21.993 回答
7

Continuum Analytics 现在提供有关如何使用各种 IDE 设置 Anaconda 的说明,包括Pycharm。但是,通过在 Unbuntu 15.10 上运行 Pycharm 5.0.1 项目解释器设置是通过文件 | 找到的。设置,然后在“设置”对话框上的树视图的“项目”分支下。

于 2015-12-29T19:33:39.887 回答
-1

这可能是重复的。我试图使用 pycharm 运行烧瓶 - 有 anaconda 3、pycharm 2019.1.1 和 windows 10。创建了一个新的 conda 环境 - 它抛出了错误。遵循这些步骤 -

  1. 如上所述创建环境后,使用 cmd 安装 python 和烧瓶。

  2. 按照这个答案。

  3. 如上所述,转到运行 -> 编辑配置并更改那里的环境以及 (2) 中的环境。

显然,到处都保留了正确的 python 解释器(环境中的解释器)。

于 2019-04-20T18:52:10.697 回答