Conoha Wingを契約しようか迷ってるけど、Pythonもちょっと使いたい。でも動くか心配って事、ありますよね。
当方もPHP(Laravel)で作ったサイトで、
漢字に自動的にフリガナを振るために、Pythonを使ってます。
Conoha Wingでも、こういったPythonファイルを使ったりができるので、
Pythonのインストール方法から、ハマった部分まで細かく解説していきます。
Conoha WingでPythonを使う方法
一応、
- pyenv + anaconda を使う方法
- 元々Conoha Wingに入ってるPythonを使う方法
の2種類がありますので、順番に解説していきます。
pyenv + anaconda を使う方法(おすすめ)
1番簡単なのは、このページで紹介されてる方法です。
このページで紹介されてる通り、
pyenvをインストールし、
さらにanacondaをインストールする事で、
pip含めて自由に使えます。
特にバグもなく、一発でちゃんと動くのでおすすめの方法です。
一応ここにも手順を書いておくと、
1. SSHでログイン後、ディレクトリはroot(/home/ユーザー名/)で、
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
と入力、実行。
2. FTPを開いて、tmpという名前でフォルダを新規作成。
3. .bash_profileを開いて、
以下3行を一番下に追記、保存。
PATH=$HOME/.pyenv/bin:$PATH
eval "$(pyenv init -)"
PATH=$HOME/.pyenv/versions/anaconda3-2020.02/bin:$PATH
anaconda3のバージョン部分は、自分のインストールしたいバージョンに書き換えてください。
Anacondaのバージョンは、この記事が参考になります。
4. 以下のコマンド入力
TMPDIR="$HOME/tmp" pyenv install anaconda3-2020.02
同じくAnacondaバージョンを書き換えてから実行してください。
5. source ~/.bash_profile
上のコマンドを打つか、もしくはSSHを一度ログアウトして、再ログインします。
(bashに書いた情報を反映させるコマンドです)
これで、ディレクトリはどこでもいいので、
conda info
と打ってみてください。Anacondaがちゃんと動くのが分かると思います。
同じくpip install nantara
という具合に打つだけで、pipも使えます。
また、単純に python3 と打つだけで、どのディレクトリでも、ターミナル上でPythonを起動できます。(抜けたい時は、exit()と打てばOKです。)
Pythonファイルの起動パスと拡張子
pythonをファイル形式にして使う場合は、
まず、一行目に、
#!~/.pyenv/versions/anaconda3-2020.02/bin/python
と書きます。バージョンは書き換えてください。これが起動パス(フルパス)です。
起動パスは、which python というコマンドで調べられます。
また、Conoha Wing上で、Pythonファイルを使う場合は、基本的には拡張子を.cgiにします。
これはエックスサーバーなども同じなんですが、.pyを.cgiとする事で、ちゃんと動きます。
PHPのshell_execで使う場合
私の場合は、PHP(Laravel)で作ったサイトで、自動的にフリガナを振るためにPythonファイルを使っているのですが、
この時ちょっとハマったので、注意書きしておくと、
例えば、普通にターミナルを立ち上げた場合は、
python3 とだけ打てば、ちゃんと動くんですが、
PHPファイル上で使う場合、
shell_exec('~/.pyenv/versions/anaconda3-2020.02/bin/python /home/ユーザー名/public_html/〇〇.com/〇〇.cgi')
のように、それぞれフルパスを書かないとちゃんと動かないので注意してください。
【余談】PHPのshell_execとpythonでハマった事
ちなみに、これもちょっとハマった事なんですが、shell_exec('php -v')と入れると、echoを使った場合、phpのバージョンが表示されるのに、shell_exec('python -v')など、pythonのコマンドを単独で入れても、何も返ってきません。
これは、別にConoha Wingに限った事ではなく、そういうもんなんだと思います。(他のサーバーでもそうだったので)。
ただ、上の例のようにpythonファイルを使うために、それぞれフルパスを入れて、やりたい事を実行する分にはちゃんと動きます。
Conoha Wingに元々入ってるPythonを使う方法
上で紹介した方法以外にも、Conoha Wingに元々入ってるPythonを使う方法もあります。一応pipも使えます。
・python2.7 /opt/alt/python27/bin/python2.7
・python3.6 /opt/alt/python36/bin/python3.6
このフルパスをターミナルで打ち込めば、pythonを起動させる事ができます。
このパスについては、Conoha WingのQ&Aページに載ってます。
前項のpyenvの時と違って、python3と打っただけでは起動しません。(これはbash_profileにパスかエイリアスの追記で解決するとは思いますが、自分はそこまでやらなかったので、ご自身で調べてみてください。)
使えるバージョンは、2.7と3.6の2種類なので、他のバージョンが必要なら、前項のanacondaを使うと良いです。
pipを使う場合
pip installを使いたい場合なんですが、普通にやると、レンタルサーバーゆえにルート権限が使えないですから、エラーがでます。
ただ、pip install --user nantara のように、--user と入れると、
~/.local/lib/python3.6/site-packagesというディレクトリにちゃんとインストールされます。
ただ、自分がMecabというパッケージを試した時は、前項のpyenvの方法の時はエラーが出なかったのに、この方法だとエラーが出てまともに動きませんでした。エラーが出る場合は、pyenvを使う方法がおすすめです。
Pythonファイルの起動パスと拡張子
先ほど紹介した通り、
/opt/alt/python36/bin/python3.6 を使って、下のように1行目に記述します。
前項同様、ファイルの拡張子は基本的には .pyを.cgiにする事で動きます。
Conoha WingでPythonは使える!
というわけで、Conoha Wingでも、上記の方法(特にpyenv + anaconda)を使えばPythonも問題なくちゃんと使えました。
本来、pythonを本格的に使うのであれば、Conoha WingよりConoha VPSを契約した方が、ルート権限(sudo)なども使えるので絶対的に良いですが、
WordPressやLaravelなどを使ってて、ついでにちょっとPythonも使いたいのであれば、Conoha Wingで、全部まとめて使う事もできちゃいますね。(そうする事でサーバー代節約できますね!)
↕
Conoha VPS公式はこちら (中身や金額を比べてみよう!)