私はNumpy/Scipy/Matplotlibで科学ソフトウェアを書いています。自宅のコンピューターでアプリケーションを開発したので、今は簡単なWebアプリケーションの作成に興味があります。例:ユーザーが画像または音声ファイルをアップロードし、プログラムがNumpy/Scipyを使用してそれを処理し、出力がMatplotlibを使用してブラウザーに表示されるか、ユーザーが処理済みファイルをダウンロードできる可能性があります。
Python 2.4.3がインストールされているが、Numpy/Scipyがインストールされていないホスティングの料金はすでに支払っています。コマンドラインからのシェルアクセスもありません。FTPをドラッグアンドドロップするだけです。かなり制限されていますが、単純なPython/CGIスクリプトを機能させることができます。
驚いたことに、Web検索では、これらの機能がすでに組み込まれているWebホスティングに適したオプションがいくつか見つかりました。(間違っている場合はガイドしてください。)Google App Engineについて学習していますが、まだ完全には理解していません。ツールと制限。ウェブdidが私に言ったことは、他の人も同様の懸念を持っているということです。
解決策を期待して、私はこれらの簡単な質問を素晴らしいSOコミュニティ:
すでにホストされているスペースにnumpy(またはサードパーティのパッケージ/ライブラリ)をインストールする簡単な方法はありますか?ホストされたスペースのPythonパスと、自宅のコンピューターの関連するPython/Numpyディレクトリを知っています。ファイルをコピーして機能させることはできますか?ローカルシステムとリモートシステムの両方を実行できますか? Ubuntu。
Numpy/Matplotlibがインストールされている、またはインストールされていない場合はインストールできる可能性のあるホスティングサイト(無料または有料)はありますか?どんなに単純であっても、動作するアプリケーションで参照できる文書化されたサイトはありますか?
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
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 envを指定できない場合(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が機能する可能性はほとんどありません。スピードアップ。
残念ながら、App Engineはnumpy、scipy、matplotlibのいずれもサポートしていません。
ホストが使用しているOSとCPUが正確にわかっている場合は、自分で同じインストールを行い、同じバージョンのPythonを使用している、パッケージのソースをダウンロードする)をダウンロードしてインストールできます。それらを.so
(またはプラットフォームによっては.pyd
)ファイルに要求してビルドし、それらをアップロードします-本当のツアーデフォースのように聞こえます。
多くのいずれか、many通常の仮想ホスティングを提供するサイト(仮想マシン、通常はLinux、適度なHWリソースを備えていますが、root権限、sshシェルアクセス、およびgcc
特に使用できる)ははるかに操作が簡単になります-基本的に、必要なソフトウェアをダウンロードしてインストールするのは、自分のLinuxワークステーションで行うのとほぼ同じです!
2 Numpy/Matplotlibがインストールされているホスティングサイト(無料または有料)が存在するもの
PythonAnywhere Webホスティングとシンプルなブラウザ内IDEを提供します。たくさんのPythonパッケージ(NumPyとMatplotlibを含む)は プリインストール です。無料のプランがあり、「プレミアム」と「ホスティング」を試してみることができます。 「より多くの機能を備えたアカウントは、それぞれ月額5ドルと10ドルです。
完全開示:私はそこで働いています...
コメントする特権はまだありませんが、「答え」を提供することはできます。
3:AppEngine
NumpyがGoogleApp Engineで利用できるようになりました: https://code.google.com/p/googleappengine/issues/detail?id=19
ただし、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