我如何 运行 从虚拟环境中全局安装 Jupyter?
How do I run globally installed Jupyter from within virtual environments?
我正在尝试 运行 Jupyter notebooks 在虚拟环境中使用全局安装的 Jupyter 版本(使用 virtualenvwrapper
,因为我想管理已安装软件包的版本)。而且我也不会用Anaconda.
问题是当我从 virtualenv 中 运行 jupyter notebook
时,它找不到安装在 env 中的包,它只能找到全局安装的包。
如何设置 Jupyter 来检查安装在虚拟环境中而不是全局环境中的包?
这是我在 运行 which python
和 which jupyter
:
时得到的结果
全球:
which python >>> /usr/local/bin/python
which jupyter >>> /usr/local/bin/jupyter
从 virtualenv 中:
which python >>> /Users/brianclifton/.virtualenvs/test/bin/python
which jupyter >>> /usr/local/bin/jupyter
运行ning jupyter notebook
来自 virtualenv:
which python >>> /usr/local/bin/python
which jupyter >>> /usr/local/bin/jupyter
此外,这是我的 .bash_profile
:
export VISUAL=vim
export EDITOR="$VISUAL"
export PS1="\[\[\e[38;5;94m\][\u] \[\e[38;5;240m\]\w:\[\e[m\] $(__git_ps1 '(%s)')$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
export PATH=/usr/local/bin/python:/usr/local/bin:$PATH
alias ls='ls -GFh'
alias pserv="python -m SimpleHTTPServer"
alias ipynb="jupyter notebook"
export WORKON_HOME=/Users/brianclifton/.virtualenvs
export PROJECT_HOME=/Users/brianclifton/dev
source /usr/local/bin/virtualenvwrapper.sh
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
alias branch='git rev-parse --abbrev-ref HEAD'
function frameworkpython {
if [[ ! -z "$VIRTUAL_ENV" ]]; then
PYTHONHOME=$VIRTUAL_ENV /usr/local/bin/python "$@"
else
/usr/local/bin/python "$@"
fi
}
一种可能的解决方案是将 virutalenv 的 bin 目录添加到您的路径前。这样 jupyter 就会找到 virtualenv 的库。您可以在激活环境后通过 运行 export PATH:`which python`:$PATH
来执行此操作。别名很容易。
但是,更好的解决方案可能是将此行添加到 postactivate
hook/script。要找到此脚本的位置,请在激活 virtualenvwrapper 并编辑 $WORKON_HOME/<virtualenv_name>/bin/postactivate
后执行 ls $WORKON_HOME
。
的另一个解决方案
workon test
pip install ipykernel
python -m ipykernel install --prefix=/usr/local --name test-kernel
然后当你从你的其他 virtualenv 运行 jupyter 时你的内核应该出现,并且所有安装在测试中的包都可以从它获得。如果您更喜欢按用户安装而不是系统范围安装,请根据文档更改前缀值
我正在尝试 运行 Jupyter notebooks 在虚拟环境中使用全局安装的 Jupyter 版本(使用 virtualenvwrapper
,因为我想管理已安装软件包的版本)。而且我也不会用Anaconda.
问题是当我从 virtualenv 中 运行 jupyter notebook
时,它找不到安装在 env 中的包,它只能找到全局安装的包。
如何设置 Jupyter 来检查安装在虚拟环境中而不是全局环境中的包?
这是我在 运行 which python
和 which jupyter
:
全球:
which python >>> /usr/local/bin/python
which jupyter >>> /usr/local/bin/jupyter
从 virtualenv 中:
which python >>> /Users/brianclifton/.virtualenvs/test/bin/python
which jupyter >>> /usr/local/bin/jupyter
运行ning jupyter notebook
来自 virtualenv:
which python >>> /usr/local/bin/python
which jupyter >>> /usr/local/bin/jupyter
此外,这是我的 .bash_profile
:
export VISUAL=vim
export EDITOR="$VISUAL"
export PS1="\[\[\e[38;5;94m\][\u] \[\e[38;5;240m\]\w:\[\e[m\] $(__git_ps1 '(%s)')$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
export PATH=/usr/local/bin/python:/usr/local/bin:$PATH
alias ls='ls -GFh'
alias pserv="python -m SimpleHTTPServer"
alias ipynb="jupyter notebook"
export WORKON_HOME=/Users/brianclifton/.virtualenvs
export PROJECT_HOME=/Users/brianclifton/dev
source /usr/local/bin/virtualenvwrapper.sh
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
alias branch='git rev-parse --abbrev-ref HEAD'
function frameworkpython {
if [[ ! -z "$VIRTUAL_ENV" ]]; then
PYTHONHOME=$VIRTUAL_ENV /usr/local/bin/python "$@"
else
/usr/local/bin/python "$@"
fi
}
一种可能的解决方案是将 virutalenv 的 bin 目录添加到您的路径前。这样 jupyter 就会找到 virtualenv 的库。您可以在激活环境后通过 运行 export PATH:`which python`:$PATH
来执行此操作。别名很容易。
但是,更好的解决方案可能是将此行添加到 postactivate
hook/script。要找到此脚本的位置,请在激活 virtualenvwrapper 并编辑 $WORKON_HOME/<virtualenv_name>/bin/postactivate
后执行 ls $WORKON_HOME
。
workon test
pip install ipykernel
python -m ipykernel install --prefix=/usr/local --name test-kernel
然后当你从你的其他 virtualenv 运行 jupyter 时你的内核应该出现,并且所有安装在测试中的包都可以从它获得。如果您更喜欢按用户安装而不是系统范围安装,请根据文档更改前缀值