为什么 python 的版本在从终端和 Atom 调用时不同
Why python's versions differ when called from Terminal and from Atom
当我从终端 运行 Python 和 Atom
调用不同版本的 python 。因此,有些包我可以毫无问题地从终端调用,但我不能从 Atom
调用。以下是详细信息:
从 terminal
调用 python
时,我得到版本 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
,我得到的结果完全一样)
现在,当查看 Atom
的 python
版本时,我得到的是
版本 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
获得与终端获得的版本相同的版本?
尝试失败
使用命令 import sys
查看 PATH
然后 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
根据github page of pyenv。我输入了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 page aboute 管理环境和 运行 以下命令:
$ 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
问题仍然存在
您的计算机上必须有多个(不同版本的)Python 解释器。在 Atom 中打开命令面板并选择 "Python: Select Interpreter"。 Select 您希望使用的 Python 版本。
如果您有多个版本的 python,您应该使用虚拟环境。从终端使用的 python 版本将取决于您激活的虚拟环境。 Atom 将使用相同的方式。
激活你想要的 python 版本,然后 运行 Atom。
如果您使用的是 Anaconda,请安装 conda 环境。如果您使用 Anaconda,它非常简单。如果您不使用它,则需要一些额外的步骤。
互联网上到处都是创建虚拟环境的说明。
我为 python 2.7 创建了一个名为 py27 的环境。当我激活这个环境时,它会像这样显示在光标行上:
。
如果你没有看到这个,你的环境还没有被激活。要在 Mac 上激活,请键入 source activate py27
。我不认为你需要电脑上的源这个词,但我无法测试它。
好吧,我实际上不得不更改jupyter内核的.json
文件中的Path
。首先我检查了 jupyter 内核的列表:
$ 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
然后我cd
上面的python路径,然后,我在里面找到文件kernel.json
并打开它:
{
"argv": [
"/path/to/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3",
"language": "python"
}
在该文件中,然后我通过在终端中键入以下内容时获得的 python 路径更改了行 /path/to/python
:
$ which python
/Users/mymac/anaconda3/bin/python
重新启动 Atom
终于成功了!
github page of jupyter 的提示也很有帮助!
当我从终端 运行 Python 和 Atom
调用不同版本的 python 。因此,有些包我可以毫无问题地从终端调用,但我不能从 Atom
调用。以下是详细信息:
从 terminal
调用 python
时,我得到版本 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
,我得到的结果完全一样)
现在,当查看 Atom
的 python
版本时,我得到的是
>>> 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)
我得到的是:
来自原子:
['', '/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
根据github page of pyenv。我输入了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 page aboute 管理环境和 运行 以下命令:
$ 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
问题仍然存在
您的计算机上必须有多个(不同版本的)Python 解释器。在 Atom 中打开命令面板并选择 "Python: Select Interpreter"。 Select 您希望使用的 Python 版本。
如果您有多个版本的 python,您应该使用虚拟环境。从终端使用的 python 版本将取决于您激活的虚拟环境。 Atom 将使用相同的方式。 激活你想要的 python 版本,然后 运行 Atom。
如果您使用的是 Anaconda,请安装 conda 环境。如果您使用 Anaconda,它非常简单。如果您不使用它,则需要一些额外的步骤。
互联网上到处都是创建虚拟环境的说明。
我为 python 2.7 创建了一个名为 py27 的环境。当我激活这个环境时,它会像这样显示在光标行上:
如果你没有看到这个,你的环境还没有被激活。要在 Mac 上激活,请键入 source activate py27
。我不认为你需要电脑上的源这个词,但我无法测试它。
好吧,我实际上不得不更改jupyter内核的.json
文件中的Path
。首先我检查了 jupyter 内核的列表:
$ 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
然后我cd
上面的python路径,然后,我在里面找到文件kernel.json
并打开它:
{
"argv": [
"/path/to/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3",
"language": "python"
}
在该文件中,然后我通过在终端中键入以下内容时获得的 python 路径更改了行 /path/to/python
:
$ which python
/Users/mymac/anaconda3/bin/python
重新启动 Atom
终于成功了!
github page of jupyter 的提示也很有帮助!