首页 文章

Python虚拟主机:Numpy,Matplotlib,科学计算

提问于
浏览
43

我在Numpy / Scipy / Matplotlib中编写科学软件 . 在家用计算机上开发应用程序后,我现在对编写简单的Web应用程序感兴趣 . 示例:用户上传图像或音频文件,我的程序使用Numpy / Scipy处理它,输出使用Matplotlib显示在浏览器上,或者用户可以下载已处理的文件 .

我已经支付了安装了Python 2.4.3的托管,但没有Numpy / Scipy . 我也没有通过命令行访问shell . 只需拖放FTP即可 . 非常有限,但我可以使用简单的Python / CGI脚本 .

令人惊讶的是,网络搜索显示很少有适合网络托管的选项,内置了这些功能 . (如果我错了,请指导我 . )我正在学习Google App Engine,但我仍然没有完全了解它工具和限制 . 网络告诉我的是,其他人也有类似的担忧 .

希望找到解决方案,我想我会向这个令人敬畏的SO社区提出这些简单的问题:

  • 有没有一种简单的方法可以将numpy(或任何第三方软件包/库)安装到我已经托管的空间上?我知道托管空间上的Python路径,我知道家用计算机上的相关Python / Numpy目录 . 我可以简单地复制文件并让它工作吗?本地和远程系统都运行Ubuntu .

  • 安装了Numpy / Matplotlib的托管站点(免费或付费)是什么,如果没有安装,是否可以安装?是否有任何文档化的站点可以引用工作应用程序,无论多么简单?

  • Google App Engine能以任何方式帮助我吗?还是完全是为了别的什么?你或其他人用它来编写Python / Numpy中的科学应用程序吗?如果是这样,你能参考一下吗?

谢谢您的帮助 .

编辑:在下面的有用答案之后,我在Slicehost买了20美元的计划,到目前为止我喜欢它! (我首先尝试使用Amazon EC2 . 我必须是愚蠢的,但我无法让它工作 . )使用Apache设置Ubuntu服务器只花了几个小时(而且我是Apache新手) . 它允许我完成我想要的Python以及更多 . 我现在也拥有自己的版本控制远程存储库 . 再次感谢!

编辑2:差不多两年后,我尝试了Linode和EC2(再次) . Linode很棒 . 这次EC2似乎更容易 - 也许它只是增加了经验,或者也许是亚马逊对AWS管理控制台所做的改进 . 对于那些对Numpy / Scipy / Matplotlib / Audiolab感兴趣的人,每当我启动EC2实例时,这是我的Ubuntu备忘单:

ec2:~$ sudo aptitude install build-essential python-scipy ipython 
       python-matplotlib python-dev python-setuptools libsndfile-dev 
       libasound2-dev mysql-server python-mysqldb 

Upload scikits.audiolab-0.11.0

ec2:~/scikits.audiolab-0.11.0$ sudo python setup.py install

ec2:~$ sudo rm -rf scikits.audiolab-0.11.0

ec2:~$ nano .ipython/ipy_user_conf.py

ip.ex('import matplotlib; matplotlib.use("Agg"); import scipy, pylab, 
       scipy.signal as sig, scipy.linalg as lin, scipy.sparse as spar, 
       os, sys, MySQLdb, boto; from scikits import audiolab')

import ipy_greedycompleter

import ipy_autoreload

4 回答

  • 7

    2安装了Numpy / Matplotlib的托管站点(免费或付费)

    PythonAnywhere提供虚拟主机和简单的浏览器IDE;许多Python包(包括NumPy和Matplotlib)都是pre-installed . 有一个免费的计划,您可以使用,并且"Premium"和"Hosting"帐户具有更多功能分别是5美元和10美元/月 .

    完全披露:我在那里工作......

  • 6

    1: Installing third party packages to hosted spaces

    您确实可以将第三方软件包安装到托管空间 . 如果's a pure python package, all that'需要将它解压缩到一个目录,然后将该目录添加到PYTHONPATH环境变量或 sys.path .

    这经常会很累人,并且对于编译的模块来说不会很容易 . 如果您具有对python主机的shell访问权限,那么优秀的virtualenv包允许您使用自己的库来设置私有python环境 .

    要设置你的virtualenv,你会在shell上做这样的事情:

    $ virtualenv $HOME/my_python
    $ $HOME/my_python/bin/easy_install numpy
    

    您可以继续运行easy_install,以便在个人python环境中安装任何其他内容 .

    现在,当您编写python脚本时,如果可能的话,您将需要使用私有python解释器:

    #!/home/myuser/my_python/bin/python
    
    import numpy
    
    # script here
    

    如果无法指定python env(例如,如果由mod_wsgi运行),则需要将其添加到导入路径:

    import sys
    sys.path.insert(0, '/home/myuser/my_python/lib/python2.5/site-packages')
    
    import numpy
    

    2: Hosting sites with numpy

    我想不出任何提供numpy预安装的托管网站 . 但是,Dreamhost / Bluehost for sharedhosts提供SSH访问,并且通过shell访问,您可以使用上述方法安装numpy . 任何虚拟专用服务器(如Linode / Slicehost)都允许您安装所需的任何内容 .

    3: AppEngine

    如上所述,AppEngine不允许你安装C扩展(但是纯python可以工作)所以numpy不太适合你,因为我怀疑它的一些功能使用C加速 .

  • 17

    App Engine不支持任何numpy,scipy或matplotlib,唉 .

    如果您确切知道主机使用的操作系统和CPU,您可以自己进行相同的安装,下载并安装他们正在使用的相同版本的Python,下载所需的软件包源并将其构建到 .so (或 .pyd ,取决于平台)文件,并上传那些 - 听起来像一个真正的游览力量 .

    提供普通虚拟主机(虚拟机,通常为Linux,具有适度的硬件资源,但具有root权限,ssh shell访问权限以及特别可以使用的 gcc )的众多 many 站点中的任何一个都将更容易工作 much 与 - 基本上,你'll download and install the software you need just about the same way you' d在你自己的Linux工作站上做!

  • 12

    我还没有发表评论,但我可以提供一个“答案” .

    3: AppEngine

    Numpy现已在Google App Engine上提供:https://code.google.com/p/googleappengine/issues/detail?id=190

    然而,matplotlib仍然在等待:http://code.google.com/p/googleappengine/issues/detail?id=482也许更多人主演这个问题会让它成为现实 .

    我会注意到svgfig是一个选项,因为它是纯python:http://code.google.com/p/svgfig/

    Update:

    结果matplotlib现在可用:https://developers.google.com/appengine/docs/python/tools/libraries27#matplotlib

相关问题