2017-02-14 135 views
2

我試圖從虛擬環境中使用全球安裝版Jupyter運行Jupyter筆記本(使用virtualenvwrapper,因爲我想管理已安裝軟件包的版本)。我不會用什麼來使用Anaconda。如何從虛擬環境中運行全局安裝的Jupyter?

問題是當我在virtualenv中運行jupyter notebook時,它找不到安裝在env中的軟件包,它只發現全局安裝的軟件包。

如何設置Jupyter以檢查虛擬環境中安裝的軟件包而不是全局?

這裏是我所得到的,當我運行which pythonwhich 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 

運行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 "[email protected]" 
    else 
     /usr/local/bin/python "[email protected]" 
    fi 
} 

回答

1

一個可能的解決方案是你的前綴virutalenv的bin目錄到您的路徑。這樣jupyter會找到virtualenv的庫。您可以通過在激活環境後運行export PATH:`which python`:$PATH來完成此操作。別名很容易。

但是,更好的解決方案可能是將此行添加到postactivate hook/script。在激活virtualenvwrapper並編輯$WORKON_HOME/<virtualenv_name>/bin/postactivate後,要找到此腳本的位置,請執行ls $WORKON_HOME

0

另一種解決方案從virtualenv doc

workon test 
pip install ipykernel 
python -m ipykernel install --prefix=/usr/local --name test-kernel 

然後,當你從其他的virtualenv jupyter運行的內核應該會出現,並安裝在測試的所有軟件包就可以從它。如果您更喜歡每用戶安裝而不是系統範圍,請根據文檔更改前綴值

相關問題