我的问题是我在Windows 10机器上运行多个具有不同依赖关系的python环境。 python本身工作正常,但是当我运行Jupyter时它没有使用正确的python环境。
我有几个使用
安装的python环境设置conda env create -n python=3.5
我使用pip安装了Jupyter(因为此时conda安装似乎已断开)
pip install jupyter
我可以在windows cmd
中使用activate切换它们>activate env1
/c/Anaconda3/envs/env1/python
>which python
>activate env2
>which python
/c/Anaconda3/envs/env2/python
当我运行每个python二进制文件并检查sys.path时,它与正确的安装有关。
import sys
sys.path
['', 'C:\\Anaconda3\\envs\\env1', 'C:\\Anaconda3\\envs\\env1\\python35.zip', 'C:\\Anaconda3\\envs\\env1\\DLLs', 'C:\\Anaconda3\\envs\\env1\\lib', 'C:\\Anaconda3\\envs\\env1\\lib\\site-packages', 'C:\\Anaconda3\\envs\\env1\\lib\\site-packages\\cycler-0.10.0-py3.5.egg']
我没有设置PYTHONPATH,并且我的路径中唯一的python条目(除了激活的更改之外)都是根Anaconda。
>echo %PATH%
... C:\Anaconda3\Library\bin; C:\Anaconda3\Scripts; C:\Anaconda3 ...
如果我只使用python,事情似乎运作良好。
然而每当我尝试运行jupyter时,无论,似乎都在使用env2。在我的Jupyter笔记本中,我运行了import sys; sys.path并且似乎总是指向env2。
我已经验证我正在使用正确的Jupyter,并且我试图通过调用python来运行Jupyter。
>activate env1
>which jupyter
/c/Anaconda3/envs/env1/Scripts/jupyter
>activate env2
>which jupyter
/c/Anaconda3/envs/env2/Scripts/jupyter
jupyter notebook # This shows env2 in sys.path
python -m jupyter notebook # This shows env2 in sys.path extended by the below entries
'c:\\anaconda3\\envs\\env2\\lib\\site-packages\\IPython\\extensions',
'C:\\Users\\username\\.ipython'
我也尝试在Jupyter中手动安装正确的python,它不会改变任何东西。
ipython kernel install --user
我的env1中安装了一堆依赖项,我的Jupyter笔记本需要这些依赖项,而且我不想弄乱我的env2。
有没有人知道为什么Jupyter没有使用正确的python环境?是否有一些我不知道的python配置?这是一个奇怪的Windows特定问题吗?