2016-06-17 27 views
17

Kendimi bir çeşit korkunç sanal ortam karmaşasına soktum. Yardım et?!jupyter dizüstü bilgisayar çekirdeği farklı env'de çalışıyor

Ortamları conda ile yönetiyorum. Yakın zamana kadar, sadece bir python2 jupyter notebook çekirdeğim vardı, ama ben tekme atlayıp 21'inci yüzyılda çığlık atmaya ve bir python3 çekirdeği kurmaya karar verdim; Bunu nasıl yaptığımı unuttum.

Ana (anaconda) python varsayılan olarak 2,7 değerine ayarlı.

İşte burada, güzel yeni çorbamın3 iç kısmından güzel çorbayı kullanmaya çalışıyorum ve paketler bulduğu her hangi bir ortama ulaşmak için hiçbir şey yapamayabiliyorum. Viz (hepsi dizüstü bilgisayardan)): Tamam, tamam, kabuk sihirbazını kullanarak yüklerim. Sağ? Sağ?

! pip install bs4 

--> Collecting bs4 
    Downloading bs4-0.0.1.tar.gz 
Requirement already satisfied (use --upgrade to upgrade): beautifulsoup4 in /Users/[MY-USER]/anaconda/lib/python2.7/site-packages (from bs4) 
[...] 
Successfully built bs4 
Installing collected packages: bs4 
Successfully installed bs4-0.0.1 

from bs4 import BeautifulSoup 

-> ImportError: No module named 'bs4' 

Hata no. Bir python3 çekirdeği çalıştırıyor olsam da 2.7 env'de olduğumu mu sanıyor? Bu yapmaz.

! conda info --envs 
--> # conda environments: 
# 
flaskenv     /Users/[MY-USER]/anaconda/envs/flaskenv 
mesa      /Users/[MY-USER]/anaconda/envs/mesa 
py35      /Users/[MY-USER]/anaconda/envs/py35 
root     * /Users/[MY-USER]/anaconda 

Tamam, bunu düzeltebilirim. Bunlardan biri 3.5 env.

ilişkin
! source activate py35 
--> prepending /Users/[MY-USER]/anaconda/envs/py35/bin to PATH 

! conda install beautifulsoup4 
--> Fetching package metadata ....... 
Solving package specifications: .......... 

# All requested packages already installed. 
# packages in environment at /Users/[MY-USER]/anaconda: 
# 
beautifulsoup4   4.4.1     py27_0 

...

daha kaygı
! pip install bs4 
--> Requirement already satisfied (use --upgrade to upgrade): bs4 in /Users/[MY-USER]/anaconda/lib/python2.7/site-packages 

...

from bs4 import BeautifulSoup 

-> ImportError: No module named 'bs4' 

arrgh !!! headdesk Bunu düzeltmek için çekirdeği öldürmek zorunda kalacağım (ve biraz çalışalım)? Çekirdeği öldürmek bile işe yarayacak mı? Jupyter çekirdeğimi, hangi ortamda çalıştığı gerektiğini öğrenmek için nasıl alabilirim?

Teşekkürler!

cevap

53

Bu ipython/Jupyter'in zor bir parçasıdır. Kullanılabilir çekirdekler, jupyter Not Defterini başlatırken sanalenv'inizden bağımsızdır. Bu hile, ipykernel paketini, kendisini jupyter'e benzersiz olarak tanımlamak istediğiniz ortamda kuruyor.

source activate ENVNAME 
pip install ipykernel 
python -m ipykernel install --user --name ENVNAME --display-name "Python (whatever you want to call it)" 

Eğer sadece python -m ipykernel install --user kullanmak ve virtualenv birine varsayılan python sıfırlar, Conda ortamından, tek Python 3 çekirdek olmasını istiyorsanız docs on multiply ipykernels itibaren.

Ve evet, çekirdeği yeniden başlatmanız ve önceki adımları yeniden uygulamanız gerekir.

Ayrıca Bkz Using both Python 2.x and Python 3.x in IPython Notebook

+0

Teşekkür ederiz! Bir çekicilik gibi çalıştı. –

+0

Büyük teşekkür ederim, günümü kurtardın! –

1

ortamınız zaten oluşturulmuş ise tschundler çözümü mükemmel çalışıyor @.

conda create --name ENVNAME python=PYTHONVERSION jupyter

doğru: Eğer sanal ortamın tesisi varsayılan çekirdek değiştirebilir ve herhangi bir manuel konfigürasyon kaçınmak istiyorsanız

, sadece Conda komutun sonunda jupyter eklemem gerekiyor ipython veya jupyter not defteri kullandığınızda çekirdek kullanılacaktır.

İlgili konular