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

Ste*_*joa 43 python numpy matplotlib scipy

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

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

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

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

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

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

  3. 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
Run Code Online (Sandbox Code Playgroud)

Cra*_*ast 17

1:将第三方软件包安装到托管空间

您确实可以将第三方软件包安装到托管空间.如果它是一个纯python包,那么所需要的只是将它解压缩到一个目录,然后将该目录添加到PYTHONPATH环境变量或sys.path.

这可能会让人感到厌倦,并且对于编译的模块而言也不会轻松工作.如果您具有对python主机的shell访问权限,那么优秀的virtualenv包允许您使用自己的库来设置私有python环境.

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

$ virtualenv $HOME/my_python
$ $HOME/my_python/bin/easy_install numpy
Run Code Online (Sandbox Code Playgroud)

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

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

#!/home/myuser/my_python/bin/python

import numpy

# script here
Run Code Online (Sandbox Code Playgroud)

If your python env cannot be specified (such as if run by mod_wsgi), you will need to add it to the import path:

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

import numpy
Run Code Online (Sandbox Code Playgroud)

2: Hosting sites with numpy

I can't think of any hosting sites offhand which offer numpy pre-installed. However, Dreamhost/Bluehost for sharedhosts provide SSH access, and with shell access you can install numpy using the methods I described above. Any Virtual Private Server such as Linode/Slicehost will allow you to install whatever you desire, as well.

3: AppEngine

As mentioned above, AppEngine will not allow you to install C extensions (but pure python ones do work) so it's unlikely numpy will work for you on there, since I suspect some of its features use C speedups.


Ale*_*lli 12

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

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

任何的许多人来说,许多网站提供正常的虚拟主机(虚拟机,通常的Linux,适度的硬件资源,但对你的root权限,SSH shell访问,并且gcc可以在特定用途)将是容易的工作 - 基本上,您将下载并安装所需的软件,就像在自己的Linux工作站上一样!


Gil*_*mas 7

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

PythonAnywhere提供Web托管和简单的浏览器IDE; 许多Python包(包括NumPy和Matplotlib)都已预先安装.有一个免费的计划,你可以用来玩,具有更多功能的"高级"和"托管"帐户分别是5美元和10美元/月.

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


kli*_*aat 6

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

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 = 422 也许更多人主演这个问题会让它成为现实.

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

更新:

结果matplotlib现已推出:https: //developers.google.com/appengine/docs/python/tools/libraries27#matplotlib