gpt4 book ai didi

python - 在 VM 中通过 Python3 运行 IPython Notebook

转载 作者:行者123 更新时间:2023-11-28 19:22:02 24 4
gpt4 key购买 nike

我正在努力组装一个简单的虚拟机,我可以用它在 Python3 上运行 IPython notebook。

我认为最好的方法是为 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'];
}
}

如果我通过 ssh 手动安装所有内容,我可以从命令行正常运行 source 命令。

但是,如果我尝试用手动安装的东西重新配置机器,我仍然会收到错误消息吗?

'source testpy3/bin/activate' 不合格且未指定路径。请限定命令或指定路径。

该问题的解决方案:可以在此处找到source 不合格问题的解决方案:https://ask.puppetlabs.com/question/2177/how-to-execute-source-command/解决方法是:command => "/bin/bash -c 'source testpy3/bin/activate'"

但是出现了一个新问题:err:/Stage[main]/Infinite_interns::Box::Python3/Exec[py3-venv]/returns: change from notrun to 0 failed:/usr/bin/virtualenv –-no-site-packages --python=/usr/bin/python3 testpy3 在/vagrant/modules/infinite_interns/manifests/box/python3.pp:14 返回 1 而不是 [0] 之一/p>

DOH - 在我的实际脚本中,我有/usr/bin/virtualenv –-no-site-packages --python=/usr/bin/python3 testpy3,它应该只是/usr/bin/virtualenv --python=/usr/bin/python3 testpy3`

所以现在一切都很好......

UPDATE 2 - 或者没有.. 我添加了 Exec['py3-venv']->Package['ipythonblocks'] 以确保在尝试安装之前安装并执行了 virtualenv 东西通过 pip 添加附加模块,但在执行时我看不到 VM 的 virtualenv 中已安装的库?

所以现在的问题是:puppet pip 可以将库安装到 virtualenv testpy3 中吗?或者我最好不要使用 virtualenv 并直接调用 python3 和相关工具?

回答:我已经放弃了 virtualenv,并准备在全局范围内“只”运行 python3。我在 ubuntu 上,所以需要 easy_install3 pip,如 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 bit 上看看是否有效..

PS 下一步将是通过 etc/init 中的文件让笔记本运行 - 下面会这样做吗? (我还没有走那么远!)这是否可行,或者 python 3 下的 IPython notebook 使用不同的起始咒语?!

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 之间的交互。

关于python - 在 VM 中通过 Python3 运行 IPython Notebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22987583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com