Conoha WingでPythonを使う方法。

更新日:

Conoha WingってPythonちゃんと動くの?

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')

のように、それぞれフルパスを書かないとちゃんと動かないので注意してください。

なぜか正しく入れても最初動かない事があったけど、ブラウザのキャッシュが原因ぽかった。ブラウザのキャッシュ消してみたり、Laravel自体のキャッシュも消すとうまく行くと思う。
Neby

 

【余談】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 Wing公式ページはこちら

Conoha VPS公式はこちら (中身や金額を比べてみよう!)

  • この記事を書いた人

Neby

本を毎日多読しつつ、資産運用、プログラミング、心理学、ネットビジネススキルを猛向上中。貧富の差が広がる5年後、10年後に安心生活を送るためのお金のリテラシー、スキル、資産を一緒に作っていきましょう。

-レンタルサーバー比較
-, ,