(如何)我可以运行python 2.7&;3.4在jupyter(ipython)并排安装笔记本电脑?

(如何)我可以运行python 2.7&;3.4在jupyter(ipython)并排安装笔记本电脑?,python,python-2.7,python-3.x,ipython-notebook,jupyter,Python,Python 2.7,Python 3.x,Ipython Notebook,Jupyter,我想将jupyter配置为允许我在两个不同的笔记本电脑中同时运行python 2.7和3.4内核(或者甚至可以在一个笔记本电脑中从一个切换到另一个) (1)这可能吗? 我之所以这样问,是因为在中有人建议这是可能的,但没有详细回答这究竟是如何工作的 您还可以看到,它似乎非常可行(甚至可以从一个python 2内核切换到python 3内核)。因此,我认为这确实是可能的(但如果我错了,请纠正我) (2)这是如何做到的? 以前的答案(如中)建议在两个不同的端口启动两个不同的ipython笔记本服务器。

我想将jupyter配置为允许我在两个不同的笔记本电脑中同时运行python 2.7和3.4内核(或者甚至可以在一个笔记本电脑中从一个切换到另一个)

(1)这可能吗?

我之所以这样问,是因为在中有人建议这是可能的,但没有详细回答这究竟是如何工作的

您还可以看到,它似乎非常可行(甚至可以从一个python 2内核切换到python 3内核)。因此,我认为这确实是可能的(但如果我错了,请纠正我)

(2)这是如何做到的?

以前的答案(如中)建议在两个不同的端口启动两个不同的ipython笔记本服务器。当然,这是完全合乎逻辑和可能的,但并没有回答我的问题

我设法为python 2和3安装了
ipython
。然后,通过在每个python环境中调用以下命令,我使这两个内核都出现在
jupyter
中:

ipython kernelspec安装自我

这为我创建了
kernel.json
文件,现在我可以选择其中任何一个来在
jupyter
中创建一个新笔记本。python 2的
kernel.json
示例:

{
 "display_name": "Python 2", 
 "language": "python", 
 "argv": [
  "/usr/local/opt/python/bin/python2.7", 
  "-m", 
  "ipykernel", 
  "-f", 
  "{connection_file}"
 ]
}
问题是,当我从python 2环境(定义了
$PYTHONPATH
)启动
jupyter
时,我只能运行python 2内核(另一个内核在打开相应的笔记本时会崩溃)。同样,当我从Python3环境(定义了
$PYTHONPATH
)启动
jupyter
时。这对我来说通常是有意义的,但我想知道如何启动或配置
jupyter
以允许两个内核从同一
jupyter
实例运行,并且仍然指定我自己特定的
$PYTHONPATH
来加载我的包

我想这是我的实际问题-在开始
jupyter
之前预定义
$PYTHONPATH
。所以我打电话:

unset PYTHONPATH
ipython notebook
我现在确实可以从一个
jupyter
实例运行这两个内核(py2&3),但我无法从特定的本地目录加载python包。我想我可以在笔记本中手动执行此操作:

import sys
sys.path.append("/some/path/lib/python2.7/site-packages")
但这真的是我应该做的吗?或者我可以在其他地方配置通常写入
$PYTHONPATH
的其他目录(例如
kernel.json
文件)

PS:请不要问我为什么需要这个-不,我真的不需要它-但我仍然想知道这是否以及如何可能

[编辑]


请注意,我不愿意安装一些python管理实用程序(如Anaconda)来完成所有这些(除非这是唯一的方法)同样,当Python3处于活动状态时,无论在启动它的shell中哪个版本的Python处于活动状态,这两个版本的内核都可以在IPython笔记本中使用

鉴于“python2”是我的python2环境的名称,“activate env”是用于激活名为“env”的环境的anaconda命令,“deactivate”是用于停用当前活动环境(如果有)的命令,我用于启用此配置的命令有:

activate python2
ipython kernelspec install-self
deactivate
ipython kernelspec install-self
IPython笔记本中的sys.path会根据当前运行的Python版本进行动态和适当的更改。当它运行Python2时,sys.path是:

['', 'C:\\Users\\tn\\Documents\\python', 'C:\\Anaconda3\\envs\\python2\\python27.zip', 'C:\\Anaconda3\\envs\\python2\\DLLs', 'C:\\Anaconda3\\envs\\python2\\lib', 'C:\\Anaconda3\\envs\\python2\\lib\\plat-win', 'C:\\Anaconda3\\envs\\python2\\lib\\lib-tk', 'C:\\Anaconda3\\envs\\python2', 'C:\\Users\\tn\\AppData\\Roaming\\Python\\Python27\\site-packages', 'C:\\Anaconda3\\envs\\python2\\lib\\site-packages', 'C:\\Anaconda3\\envs\\python2\\lib\\site-packages\\Sphinx-1.3.1-py2.7.egg', 'C:\\Anaconda3\\envs\\python2\\lib\\site-packages\\cryptography-0.9.1-py2.7-win-amd64.egg', 'C:\\Anaconda3\\envs\\python2\\lib\\site-packages\\win32', 'C:\\Anaconda3\\envs\\python2\\lib\\site-packages\\win32\\lib', 'C:\\Anaconda3\\envs\\python2\\lib\\site-packages\\Pythonwin', 'C:\\Anaconda3\\envs\\python2\\lib\\site-packages\\setuptools-18.1-py2.7.egg', 'C:\\Anaconda3\\envs\\python2\\lib\\site-packages\\IPython\\extensions']
将内核切换到Python3后,sys.path变为:

['', 'C:\\Users\\tn\\Documents\\python', 'C:\\Anaconda3\\python34.zip', 'C:\\Anaconda3\\DLLs', 'C:\\Anaconda3\\lib', 'C:\\Anaconda3', 'C:\\Anaconda3\\lib\\site-packages', 'C:\\Anaconda3\\lib\\site-packages\\Sphinx-1.3.1-py3.4.egg', 'C:\\Anaconda3\\lib\\site-packages\\cryptography-0.9.1-py3.4-win-amd64.egg', 'C:\\Anaconda3\\lib\\site-packages\\win32', 'C:\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Anaconda3\\lib\\site-packages\\setuptools-18.1-py3.4.egg', 'C:\\Anaconda3\\lib\\site-packages\\IPython\\extensions']
PYTHONPATH=C:\Users\tn\Documents\python包含在两个版本的python的sys.path中

为了根据IPython笔记本的Python版本定制sys.path,环境变量(Python2)(另请参见(Python3))可以使用。此变量应包含一个可读的Python脚本,该脚本将在交互式模式启动期间执行。对于Python 2和Python 3,它必须可由两者执行。例如,在C:\Users\tn\Documents\Python中,我创建了以下名为“start”的脚本,该脚本确定了执行它的Python的主要版本并附加以指向sys.path的路径结尾的路径:

import sys
v = sys.version_info[0]
if v == 2 or v == 3:
   sys.path.append(r'C:\Users\tn\Documents\python' + '\\' + str(v))

现在,在重新启动IPython笔记本电脑时,Python 2 sys.path[-1]是C:\Users\tn\Documents\Python\2,而Python 3是C:\Users\tn\Documents\Python\3。

好的,我已经回答了一些初始问题,但是请告诉我您是否可以帮助
$PYTHONPATH
部分:)谢谢!谢谢,我会看一下PYTHONSTARTUP,但是我应该提到我没有(也不想)使用anaconda。