Python Jupyter和conda:克隆环境时出错

Python Jupyter和conda:克隆环境时出错,python,pip,jupyter-notebook,conda,conda-forge,Python,Pip,Jupyter Notebook,Conda,Conda Forge,为了测试已安装软件包的兼容性,我创建了多个conda环境。我使用conda create-n test02--clone test01创建环境test02作为test01的克隆。我激活test02,安装新软件包并启动python实例,从中导入新软件包不会有问题。当我启动jupyter笔记本或qtconsole并尝试导入新安装的软件包时,出现了问题:没有名为“xxx”的模块。我做了一个sys.executable,看到jupyter正在从我克隆新环境的旧环境(test01)运行python。为什么

为了测试已安装软件包的兼容性,我创建了多个conda环境。我使用
conda create-n test02--clone test01
创建环境test02作为test01的克隆。我激活test02,安装新软件包并启动python实例,从中导入新软件包不会有问题。当我启动jupyter笔记本或qtconsole并尝试导入新安装的软件包时,出现了问题:没有名为“xxx”的模块。我做了一个sys.executable,看到jupyter正在从我克隆新环境的旧环境(test01)运行python。为什么会这样?我可以在配置文件的某个地方更改它吗?我可以在哪里找到这个文件?

编辑:更多信息

jupyter--两个环境的路径都在同一环境目录中共享配置和数据的路径条目

(test01) PS C:\Users\Aka> jupyter --paths
config:
    C:\Users\Aka\.jupyter
    c:\users\aka\miniconda3\envs\test01\etc\jupyter
    C:\ProgramData\jupyter
data:
    C:\Users\Aka\AppData\Roaming\jupyter
    c:\users\aka\miniconda3\envs\test01\share\jupyter
    C:\ProgramData\jupyter
runtime:
    C:\Users\Aka\AppData\Roaming\jupyter\runtime
(test01) PS C:\Users\Aka> conda activate test02
(test02) PS C:\Users\Aka> jupyter --paths
config:
    C:\Users\Aka\.jupyter
    c:\users\aka\miniconda3\envs\test01\etc\jupyter
    C:\ProgramData\jupyter
data:
    C:\Users\Aka\AppData\Roaming\jupyter
    c:\users\aka\miniconda3\envs\test01\share\jupyter
    C:\ProgramData\jupyter
runtime:
    C:\Users\Aka\AppData\Roaming\jupyter\runtime
edit2:我忘了提到我使用pip安装了Jupyter

要重新创建问题,我执行了以下操作:

conda create -n env1
conda activate env1
pip install jupyter
jupyter --paths
配置:
C:\Users\Aka.jupyter
c:\users\aka\miniconda3\envs\env1\etc\jupyter
C:\ProgramData\jupyter
数据:
C:\Users\Aka\AppData\Roaming\jupyter
c:\users\aka\miniconda3\envs\env1\share\jupyter
C:\ProgramData\jupyter
运行时:
C:\Users\Aka\AppData\Roaming\jupyter\runtime

配置:
C:\Users\Aka.jupyter
c:\users\aka\miniconda3\envs\env1\etc\jupyter
C:\ProgramData\jupyter
数据:
C:\Users\Aka\AppData\Roaming\jupyter
c:\users\aka\miniconda3\envs\env1\share\jupyter
C:\ProgramData\jupyter
运行时:
C:\Users\Aka\AppData\Roaming\jupyter\runtime


如果我将jupyter与conda一起安装到一个全新的环境中,然后克隆该环境,jupyter的行为将与预期的一样。注意:我使用pip安装了jupyter,因为我使用的是python 3.5,因为我需要其他软件包,而在我的环境中安装带有conda的jupyter一直在破坏它。我向conda forge寻求帮助,但他们说“很抱歉,我们不支持python 3.5”。

Jupyter只需要安装在一个位置上—conda env或系统级别

安装在康达环境中的Jupyter 要将其他env用作内核,需要在带有Jupyter的env中安装
nb_conda_内核
,并在希望用作内核的任何env中安装
ipykernel
。始终使用jupyter从env启动
jupyter笔记本
,其他笔记本将自动可用

康达郊外的朱皮特 如果Jupyter安装在系统级,则必须手动注册希望用作内核的Conda envs:

conda activate my_env
conda install ipykernel
python -m ipykernel install --user --name my_env_name

然后从任何地方启动Jupyter。

您安装了ipykernel吗?另外,当您启动jupyter时,您是否可以在创建新笔记本时选择新环境(test02)(单击“新建”下拉列表,并选择test02(如果可用)?是的,已安装ipykernel。从笔记本应用程序的下拉菜单中创建新笔记本时,没有选择或指示选择环境。我认为问题在于,在为它们创建内核之前,需要激活conda环境。这是Jupyter没有做的事情。@carlosCordoba,这不是问题所在。问题是,当新环境处于活动状态并且jupyter应用程序从该环境启动时,路径指向另一个环境。非常感谢。这让我走上了我需要完成的道路。我不知道这种可能性,所以可能问错了问题。我正在玩nb_conda_内核,并让它运行我的py35内核。我现在必须弄清楚如何让它从笔记本中运行%qtconsole。有什么想法吗?如果我在py35内核笔记本上尝试,它会默默地失败。然后,我将qtconsole安装到py35 env中,并从笔记本中尝试,但再次失败,原因是“…ImportError:没有名为“console”的模块”
conda activate my_env
conda install ipykernel
python -m ipykernel install --user --name my_env_name