そんな疑問を解消するために今回はカラフルボックスでPythonを使い方を紹介していきたいと思います。
- カラフルボックスに入っているPythonを使う方法
- カラフルボックスの機能を使ってPythonの環境を作成する方法
カラフルボックスにPythonはデフォルトで入っている
カラフルボックスの各種パスを見てみるとPythonは既に入っています。
- /usr/bin/python
- /opt/alt/python27/bin/python2.7
- /opt/alt/python33/bin/python3.3
- /opt/alt/python34/bin/python3.4
- /opt/alt/python35/bin/python3.5
- /opt/alt/python36/bin/python3.6
実際にTerminalから確認してみるとちゃんと入っていますね。
入っているPythonを使ってプログラムを実行する
既にPythonが入っているなら、それを使ってプログラムを実行することはもちろんできる。「Hello ColorfulBox」っていう出力するだけのindex.pyっていうファイルを作って実行してみるとちゃんと実行されます。
これはPython3.9を使ってやっているけど、他のPythonのバージョンを使えばそのバージョンで実行できるはずです。
カラフルボックスでPythonの環境を作成する
最初から入っているPythonを使って何かプログラムを実行してもいいけど、カラフルボックスにはPythonをインストールする機能があるのでそれを使ってみようと思います。
- Pythonをインストールする
- インストールしたPythonを使う
Pythonをインストールする機能
cPanelから「Setup Python App」を選択してみましょう。
ここに必要情報を入力してCREATEボタンを押すと作ることができる。
Application startup fileとApplication Entry pointを空にして作ってみると勝手に作ってくれますね。
これでTerminalで表示されたコマンドを入力してみると作成されたアプリケーションのフォルダを見ることができる。
作成画面で選択したPythonはどこにあるのかな?って見てみると/home/ユーザー名/virtualenv/入力したアプリケーション名の中に入っている様子。
元から入っているPython使ってもいいけど、こうして入れたPythonを使って何か実行するっていうこともできますね。
ドメインにアクセスしても503・・・
Pythonインストールできるのはいいんだけど選択したドメインにアクセスしても503でした。なんかやり方間違えているのかな。
選択したドメインと作成した環境紐づけてくれるんだろうなあ・・・って思ったんだけど違うのだろうか。勝手にpassenger_wsgi.pyっていうのができるから表示してくれそうなんだけどなあ・・・
import syssys.path.insert(0, os.path.dirname(__file__))def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
message = 'It works!\n'
version = 'Python %s\n' % sys.version.split()[0] response = '\n'.join([message, version])
return [response.encode()]
ログ見てみると普通にエラー起きているけど、環境変数系のエラーだろうか。
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
ちょっといじってみたけど、すぐに解消できなかったので今回は諦めます。画面から簡単に環境作れそうだなと思ったからちょっと動かないの残念。。
Python2.7.18ならうまくいく
Pythonのversionを2.7.18にすると、ドメインにアクセスしてちゃんと動くことが確認できました。
ただ3系でいろいろ試してみたけど、それだと503でうまくいきません。うーん・・新しいPythonのバージョンで環境作れたら楽なんだけどなあ・・・。Pythonで何か作ってみたい方は試してみてください。