44

私はNumpy/Scipy/Matplotlibで科学ソフトウェアを書いています。自宅のコンピューターでアプリケーションを開発したので、今は簡単なWebアプリケーションを作成することに興味があります。例:ユーザーが画像または音声ファイルをアップロードし、私のプログラムがNumpy / Scipyを使用してそれを処理し、出力がMatplotlibを使用してブラウザーに表示されるか、ユーザーが処理済みファイルをダウンロードできる可能性があります。

Python 2.4.3がインストールされているホスティングの料金はすでに支払っていますが、Numpy/Scipyはありません。コマンドラインからのシェルアクセスもありません。FTPをドラッグアンドドロップするだけです。かなり制限されていますが、単純なPython/CGIスクリプトを機能させることができます。

驚いたことに、Web検索では、これらの機能がすでに組み込まれているWebホスティングに適したオプションがいくつか見つかりました。(間違っている場合はご案内ください。)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:ほぼ2年後、私はLinodeとEC2を(再び)試しました。Linodeは素晴らしいです。今回はEC2の方が簡単に見えました。おそらく、エクスペリエンスが追加されただけなのか、Amazonが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

4 に答える 4

17

1:ホストされたスペースへのサードパーティパッケージのインストール

実際、ホストされているスペースにサードパーティのパッケージをインストールできます。純粋なPythonパッケージの場合、必要なのは、それをディレクトリに解凍してから、そのディレクトリをPYTHONPATH環境変数またはに追加することだけですsys.path

これは頻繁に行うのが面倒であり、コンパイルされたモジュールでは簡単に機能しません。Pythonホストへのシェルアクセスがある場合、優れたvirtualenvパッケージを使用すると、独自のライブラリを使用してプライベートpython環境をセットアップできます。

virtualenvを設定するには、シェルで次のようにします。

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

個人のPython環境にインストールしたい他のすべてのものに対してeasy_installを実行し続けることができます。

これで、Pythonスクリプトを作成するときに、可能であれば、プライベートpythonインタープリターを使用することをお勧めします。

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

import numpy

# script here

Python環境を指定できない場合(mod_wsgiで実行する場合など)、インポートパスに追加する必要があります。

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

import numpy

2:numpyでサイトをホストする

numpyがプリインストールされているホスティングサイトは思い浮かびません。ただし、共有ホスト用のDreamhost / BluehostはSSHアクセスを提供し、シェルアクセスを使用すると、上記の方法を使用してnumpyをインストールできます。Linode / Slicehostなどの仮想プライベートサーバーでは、必要なものをインストールすることもできます。

3:AppEngine

上記のように、AppEngineではC拡張機能をインストールできません(ただし、純粋なPython拡張機能は機能します)。そのため、一部の機能でCスピードアップが使用されていると思われるため、numpyが機能する可能性はほとんどありません。

于 2010-01-17T07:10:09.700 に答える
13

App Engineは、残念ながら、numpy、scipy、matplotlibのいずれもサポートしていません。

ホストが使用しているOSとCPUが正確にわかっている場合は、同じインストールを自分で作成し、使用しているのと同じバージョンのPythonをダウンロードしてインストールし、必要なパッケージのソースをダウンロードしてビルドすることができます.so(または.pyd、プラットフォーム上で)ファイルをアップロードし、それらをアップロードします-本当のツアーデフォースのように聞こえます。

通常の仮想ホスティングを提供する多くサイト(仮想マシン、通常はLinux、適度なHWリソースを備えていますが、root権限、sshシェルアクセス、gcc特に使用可能)は、はるかに簡単に操作できます。 -基本的に、必要なソフトウェアをダウンロードしてインストールするのは、自分のLinuxワークステーションで行うのとほぼ同じです。

于 2010-01-17T06:04:59.807 に答える
9

2 Numpy / Matplotlibがインストールされているホスティングサイト(無料または有料)が存在するもの

PythonAnywhereは、ウェブホスティングとシンプルなブラウザ内IDEを提供します。多くのPythonパッケージ(NumPyとMatplotlibを含む)がプリインストールされています。遊んでみることができる無料のプランがあり、より多くの機能を備えた「プレミアム」アカウントと「ホスティング」アカウントは、それぞれ月額5ドルと10ドルです。

完全開示:私はそこで働いています...

于 2012-05-18T17:20:31.357 に答える
6

コメントする特権はまだありませんが、「答え」を提供することはできます。

3:AppEngine

NumpyがGoogleAppEngineで利用できるようになりました: 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/

アップデート:

matplotlibが利用可能になりました: https ://developers.google.com/appengine/docs/python/tools/libraries27#matplotlib

于 2012-03-06T19:10:52.127 に答える