首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么从终端和Atom调用python的版本不同

为什么从终端和Atom调用python的版本不同
EN

Stack Overflow用户
提问于 2018-12-18 07:24:43
回答 3查看 641关注 0票数 0

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

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

代码语言:javascript
复制
$ 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,得到的结果完全相同)

现在,当我从Atom查看python版本时,我得到的是3.6.5版本

代码语言:javascript
复制
>>> 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获得与终端正在获取的版本相同的版本?

尝试失败

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

来自Atom:

代码语言:javascript
复制
['', '/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']

从终端:

代码语言:javascript
复制
['', '/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版本:

代码语言:javascript
复制
$ pyenv versions
* system (set by /Users/mymac/.pyenv/version)
  3.6.5

根据github page of pyenv的说法。我进入了pyenv virtualenv 3.7.1。则当输入$ pyenv versions时,列表中至少包含版本3.7.1:

代码语言:javascript
复制
* system (set by /Users/mymac/.pyenv/version)
  3.6.5
  3.7.1

但这并没有解决Atom的问题

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

代码语言:javascript
复制
$ 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$

我可以成功地选择正确的虚拟环境。但在打开Atom时,问题仍然存在

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-19 03:04:11

好的,实际上我必须修改jupyter内核的.json文件中的Path。首先,我检查了jupyter内核的列表:

代码语言:javascript
复制
$ jupyter kernelspec list
julia-0.6    /Users/mymac/Library/Jupyter/kernels/julia-0.6
julia-1.0    /Users/mymac/Library/Jupyter/kernels/julia-1.0
python3      /Users/mymac/Library/Jupyter/kernels/python3

然后我对上面的python路径执行cd操作,在其中找到了文件kernel.json并将其打开:

代码语言:javascript
复制
{
 "argv": [
  "/path/to/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3",
 "language": "python"
}

在该文件中,我使用在终端中键入以下内容时获得的python路径更改了/path/to/python行:

代码语言:javascript
复制
$ which python
/Users/mymac/anaconda3/bin/python

重新启动了Atom,它终于成功了!

github page of jupyter的提示也有很大帮助!

票数 0
EN

Stack Overflow用户

发布于 2018-12-18 07:27:34

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

票数 2
EN

Stack Overflow用户

发布于 2018-12-18 23:52:29

如果你有多个版本的python,你应该使用虚拟环境。从终端使用的python版本将取决于您激活的虚拟环境。那么Atom也会使用同样的方法。激活所需的python版本,然后运行Atom。

如果您正在使用Anaconda,那么请安装conda环境。如果你使用Anaconda,这是非常简单的。如果您不使用它,则需要执行一些额外的步骤。

互联网上到处都是创建虚拟环境的指导。

我为Python2.7创建了一个名为py27的环境。当我激活这个环境时,它显示在光标行上,如下所示:

如果您看不到这一点,则说明您的环境尚未激活。要在Mac上激活,请键入source activate py27。我不认为你需要在pc上使用source这个词,但我不能测试它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53824403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档