首页 > 解决方案 > 为什么从终端和 Atom 调用 python 的版本不同

问题描述

当我从终端和 from 运行 Python 时Atom,会调用不同版本的 python。因此,有些包我可以从终端毫无问题地调用,但我不能从Atom. 以下是详细信息:

python从调用时terminal,我得到版本 3.7.1

$ python
Python 3.7.1 | packaged by conda-forge | (default, Nov 13 2018, 09:50:42) 
[Clang 9.0.0 (clang-900.0.37)] :: Anaconda custom (64-bit) on darwin

(如果我键入,我会得到完全相同的结果python3

现在,当我查看python版本时,Atom我得到了 3.6.5 版本

>>> import sys
>>> print(sys.version
3.6.5 | packaged by conda-forge | (default, Apr  6 2018, 13:44:09) 
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]

怎么来的?我怎样才能Atom获得与终端获得的版本相同的版本?

失败的尝试

PATH用命令查看import sys,然后print(sys.path)这是我得到的:

从原子:

['', '/anaconda3/lib/python36.zip', '/anaconda3/lib/python3.6', 
'/anaconda3/lib/python3.6/lib-dynload', '/anaconda3/lib/python3.6/site-packages',
'/anaconda3/lib/python3.6/site-packages/aeosa', '/anaconda3/lib/python3.6/site-packages/cycler-0.10.0-py3.6.egg', 
'/anaconda3/lib/python3.6/site-packages/IPython/extensions', '/Users/mymac/.ipython']

从终端:

['', '/Users/mymac/anaconda3/lib/python37.zip', 
'/Users/mymac/anaconda3/lib/python3.7', 
'/Users/mymac/anaconda3/lib/python3.7/lib-dynload', 
'/Users/mymac/anaconda3/lib/python3.7/site-packages', 
'/Users/mymac/anaconda3/lib/python3.7/site-packages/aeosa']

似乎Atom正在使用pyenv给定以下命令和输出的 Python 版本:

$ pyenv versions
* system (set by /Users/mymac/.pyenv/version)
  3.6.5

根据pyenv 的 github 页面。我进入了pyenv virtualenv 3.7.1。然后$ pyenv versions在至少输入 3.7.1 版本时在列表中:

* system (set by /Users/mymac/.pyenv/version)
  3.6.5
  3.7.1

但这并没有解决问题Atom

然后我访问了关于管理环境的 conda页面并运行了以下命令:

$ conda create --name myenv

它运行没有问题,但问题仍然存在

然后我尝试更具体地运行,$ conda create -n myenv python=3.7.1但得到:CondaValueError: prefix already exists: /Users/mymac/anaconda3/envs/myenv

正如@jmh所指出的,然后我尝试了:$ source activate 3.7.1并得到了以下提示:(3.7.1) user:~ user$

我可以成功选择正确的virtualenv。但是打开Atom后问题依旧

标签: pythonpython-3.xanacondaversionatom-editor

解决方案


您的计算机上必须有多个(不同版本的)Python 解释器。在 Atom 中打开命令面板并选择“Python: Select Interpreter”。选择您要使用的 Python 版本。


推荐阅读