首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jupyter笔记本外壳命令不回显conda环境

jupyter笔记本外壳命令不回显conda环境
EN

Stack Overflow用户
提问于 2018-02-12 01:07:42
回答 1查看 388关注 0票数 0

我一直在运行带有多个conda环境(内核)的木星笔记本。这是通过安装nb_condanb_conda_kernels完成的。

在安装上述两个包并重新启动笔记本服务器之后,我似乎可以访问jupyter笔记本中的两个jupyter环境。但是,我无法确定基础shell是否具有正确的环境。例如,如果我启动两个笔记本服务器--一个用Python2.7启动,另一个用3.6启动--我会得到Python版本的预期答案,而不是执行的shell命令。

Python2.7.13:

代码语言:javascript
复制
import sys

print(sys.version)

#succeed evidence for running py < 3 
import commands

commands.getoutput('which python')

输出

代码语言:javascript
复制
2.7.13 |Anaconda custom (64-bit)| (default, Dec 20 2016, 23:09:15) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]

'/path/python/anaconda3/envs/py36/bin/python'

在本例中,我希望which python生成在Python2.7.13环境中活动的python版本。但我知道返回的路径实际上是Python3.6环境中使用的python (参见下面)

Python3.6:

代码语言:javascript
复制
import sys

print(sys.version)

import subprocess

subprocess.check_output(["which","python"])

输出:

代码语言:javascript
复制
3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:09:58) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]

b'/path/python/anaconda3/envs/py36/bin/python\n'

此外,在Python3.6环境中,我遇到了这个失败,这是有意义的,因为commands模块在Python3中被删除了:

代码语言:javascript
复制
# fail (evidence for running py 3.6 env)

import commands

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call      last)
<ipython-input-2-9cbf0185e88f> in <module>()
      1 # fail (evidence for running py 3.6 env)
----> 2 import commands

ModuleNotFoundError: No module named 'commands'

因此,在这两种情况下,which python的输出从我启动木星笔记本的环境中提供了python的版本。这使我相信,虽然Python环境与预期一样,但shell环境与Python环境不一致。为什么这是真的?会不会引起问题?

EN

回答 1

Stack Overflow用户

发布于 2018-02-12 01:16:40

which python只为您提供环境变量PATH中的python路径。但不是现在的python版本。它取决于您启动jupyter笔记本的环境。

例如,您可以在原始终端中运行/path/python/anaconda3/envs/py35/bin/python,同时激活source activate py36。在本例中,您的python版本为3.5,但which python仍将为您提供/path/python/anaconda3/envs/py36/bin/python。或者您可以运行/path/python/anaconda3/envs/py27/bin/python,那么您的python版本为2.7,而which python将再次给出py36

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

https://stackoverflow.com/questions/48738246

复制
相关文章

相似问题

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