![](/img/trans.png)
[英]Why is my Jupyter notebook running ipython kernel instead of python3? Problem with group bys
[英]Running IPython Notebook over Python3 in a VM
我正在努力整理一個簡單的虛擬機,我可以用它來運行Python3上的IPython筆記本。
我認為最好的方法是為Python設置虛擬環境,然后在啟動IPython服務器之前將所需的庫安裝到其中,盡管可能更好的方法是將virtualenv創建分離為shell腳本?
更新:我遇到的一個主要問題是路徑不完整......
##Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.ssh.forward_x11 = true
config.vm.provision :puppet,
:options => "--modulepath=/vagrant/modules" do |puppet|
puppet.manifests_path = "."
puppet.manifest_file = "site.pp"
end
config.vm.define :python3 do |python3|
python3.vm.hostname = "python3"
python3.vm.provider :virtualbox do |virtualbox|
virtualbox.name = "python3"
end
python3.vm.network :forwarded_port, guest: 8888, host: 8888
end
end
###site.pp
node default {
include testVM
}
#in modules/testVM//manifests/box/python3.pp
class testVM::box::python3 {
#I was hoping this require statement would install python3 & virtualenv first?
require python3::base
#But it doesn't seem to because the following exec runs first and fails?
#ssh'ing into the VM and the base packages didn't install?
exec {
'py3-venv':
command => '/usr/bin/virtualenv --python=/usr/bin/python3 testpy3',
require => Package['openssh-server','python-virtualenv'];
##I think problem is narrowed down to this - how do I run source or . ?
'py3-activate':
command => 'source testpy3/bin/activate',
require=>Exec['py3-venv'];
}
#Try to add in a dependency to force package install - still doesn't work?
Package['python3']->Exec['py3-venv']
#Install in a small package to check it appears in python3 env
package {
[
'ipythonblocks'
]: ensure => latest,
provider => 'pip';
}
}
#I assumed this would install before the exec fired but it doesn't seem to?
class testVM::box::python3::base {
package { 'python3':
ensure => latest
}
package {
[ 'ipython3',
'python-virtualenv'
]: require => Package['python3'];
}
}
如果我手動插入並安裝所有內容,我可以從命令行運行源命令。
但是,如果我嘗試用手工安裝的東西重新配置機器,我仍然會收到錯誤?
'source testpy3/bin/activate' is not qualified and no path was specified. Please qualify the command or specify a path.
解決問題的方法:可以在此處找到解決source
不合格問題的方法: https : //ask.puppetlabs.com/question/2177/how-to-execute-source-command/解決方案是: command => "/bin/bash -c 'source testpy3/bin/activate'"
但是一個新的問題是: 錯誤:/ Stage [main] / Infinite_interns :: Box :: Python3 / Exec [py3-venv] /返回:從notrun更改為0失敗:/ usr / bin / virtualenv --no-site- package -python = / usr / bin / python3 testpy3在/vagrant/modules/infinite_interns/manifests/box/python3.pp:14返回1而不是[0]中的一個
DOH - 在我的實際腳本中我有/usr/bin/virtualenv –-no-site-packages --python=/usr/bin/python3 testpy3
,它應該是/ usr / bin / virtualenv --python = / usr / bin / python3 testpy3`
所以這一切都很好......
更新2 - 或者不是..我添加了Exec['py3-venv']->Package['ipythonblocks']
以確保在嘗試通過pip安裝附加模塊之前安裝並執行了virtualenv內容,但是當它執行時我在VM中的virtualenv中看不到已安裝的庫?
所以現在的問題是:可以將puppet pip安裝到virtualenv testpy3嗎?m或者我最好不要使用virtualenv並直接調用python3和相關工具?
答案:我放棄了virtualenv,並且正在尋求在全球范圍內“運行”python3。 我在ubuntu,所以需要easy_install3點,如https://askubuntu.com/questions/412178/how-to-install-pip-for-python-3-in-ubuntu-12-04-lts所述 ; 使用pip3作為提供者, https://github.com/bodepd/puppet-pip/blob/master/lib/puppet/provider/package/pip3.rb
在PS位上查看是否有效..
PS下一步將是通過etc / init中的文件運行筆記本 - 以下是否會這樣做? (我還沒有那么遠!)這可能有用嗎?或者python 3下的IPython筆記本是否使用了不同的起始咒語?!
script
export HOME="/root"
/vagrant/notebooks/ipython3 notebook --ip 0.0.0.0
end script
有一點需要注意的是,我還沒有讓它可靠地為我工作(也就是說,它已經工作了幾次然后停止了,一些重新安裝工作而一些沒有[似乎受到你之后安裝的其他軟件包的影響,一個非干凈的DST安裝等],基於Data Science Toolbox構建你的VM,可以在這里找到: http : //datasciencetoolbox.org/ 。 在我們的辦公室,我們還為基於Python 3和IPython的學生制作了一個包。
無論如何,我非常非常有興趣與你討論vagrant,python3和ipython之間的互動。
通過安裝Data Science Toolbox ,然后使用apt-get
ipython3,ipython3-notebook,python3-pip和python3-dev進行安裝,可以輕松實現使用Python 3和IPython Notebook的工作VM。 似乎可以很好地使用當前版本的Data Science Toolbox。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.