繁体   English   中英

Jupyter Notebook的virtualenvwrapper安装使用virtualenv python但全局pip和软件包

[英]virtualenvwrapper install of Jupyter Notebook uses virtualenv python but global pip & packages

我有一个virtualenvwrapper包装的virtualenv。 让我们称之为测试。 Jupyter通过我的全局pip和virtualenv的pip安装。

$ which python
/usr/bin/python
$ which pip
/usr/local/bin/pip
$ which jupyter
/usr/local/bin/jupyter
$ workon test
(test)$ which python
/home/keon/.virtualenvs/test/bin/python
(test)$ which pip
/home/keon/.virtualenvs/test/bin/pip
(test)$ which jupyter
/home/keon/.virtualenvs/test/bin/jupyter

现在,我通过/ usr / local / bin / pip安装了程序包A,并通过/home/keon/.virtualenvs/test/bin/pip安装了程序包B。 (天文和主持人关系,但我不认为这很重要)

我启动jupyter笔记本(在测试virtualenv的外壳中)。 然后,我在单元格中运行以下代码:

import astropy
import emcee

:并得到以下错误

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-12-43214a4612e2> in <module>()
      1 import astropy
----> 2 import emcee

ImportError: No module named 'emcee'

在单元格中,我使用! Shell命令:

!which python
!which pip
!which jupyter
!echo "Pip freeze below:\n---------------------"
!pip freeze

输出是

/home/keon/.virtualenvs/ph20/bin/python
/usr/local/bin/pip
/usr/local/bin/jupyter
Pip freeze below:
---------------------
[snip]
astropy==3.0.3

所以我的python是virtualenv,但是它似乎正在使用全局jupyter和pip。

这个问题似乎只存在于我的一个virtualenv中。 如果我使用不同的电池,则运行与前面所述相同的单元,则输出是预期的:

/home/keon/.virtualenvs/test2/bin/python
/home/keon/.virtualenvs/test2/bin/pip
/home/keon/.virtualenvs/test2/bin/jupyter

当有Jupyter Notebook的多个安装时(在全局和特定的virtualenv中),这是一个常见问题。 据我所知,如果在virtualenv中未安装Jupyter,则即使在激活特定virtualenv的情况下给出命令,终端也将开始Jupyter Notebook的全局安装。 因此,请确保在“测试”环境中安装了Jupyter,并在激活“测试”环境时给出了“ jupyter笔记本”命令。

如果上述解决方案无法正常工作,并且您确定virtualenv的Jupyter实例正在运行并且仍然无法检测到同样安装在同一virtualenv中的特定程序包,则可以尝试从代码中安装所需的程序包通过使用此处建议的方法: 在代码内安装python模块

如果这两个都失败,我建议您创建一个新的virtualenv,在其中安装jupyter,在其中安装所需的其他软件包,然后在virtualenv处于活动状态时尝试再次运行jupyter实例。

如果您不习惯使用virtualenv包装器管理多个virtualenv,并且经常遇到此类错误,尤其是在使用jupyter的情况下,我建议您使用Anaconda并使用GUI创建virtualenvs,该GUI可提供更简洁的管理系统并确保您的Jupyter实例使用正确的virtualenv。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM