エックスサーバーでPythonの仮想環境を構築する方法(Miniconda)

ブログ運営

はじめに

エックスサーバーのような共用サーバーでは、root権限が制限されており、Pythonライブラリやソフトウェアのインストールが直接行えない。
これにより、開発環境の構築やカスタマイズが制約を受ける場合が多い。この課題を解決する手段として、Minicondaを利用した仮想環境の構築が有効である。

Minicondaを使用することで、以下の利点が得られる:

  • 環境の分離:プロジェクトごとに異なるPythonのバージョンや依存関係を独立して管理可能。
  • 権限の制限回避:root権限を必要とせずに環境を自由に構築・運用可能。
  • 簡易なパッケージ管理condaコマンドを用いてライブラリを効率的に管理できる。

必要な環境とツール

ツール バージョン 備考
エックスサーバー 任意(共用サーバー) SSH接続を有効にする必要あり
Miniconda 最新版推奨
Python 任意 Miniconda環境内で設定可能
SSHクライアント 任意(TeraTerm, PuTTY, Terminal) SSH接続用

手順

1. Minicondaのインストール

Minicondaのダウンロード・インストールについては、以下の記事を参考にさせていただいた。
記事の内容に従って手順を進めた結果、基本的にはつまづく場面はなかった。

エックスサーバーにPythonのWebアプリをデプロイ【Miniconda、Flask、FastCGIを使用】


2. プログラムを呼び出す

いざ作成したPythonのプログラムを呼び出す際に個人的につまづいた。 minicondaでPython3.12.7をインストールし、環境変数(PATH)も設定したが、実際に呼び出されるのは元々エックスサーバーにインストールされているPython3.6.8という現象が起きたためだ。

解決方法としては、以下のようにプログラムのソースコード内に、PHPでPythonのコマンドを呼び出す際に、minicondaの仮想環境が呼び出すPythonのパスを直接指定するという方法だ。 もっと頭の良いやり方があるかもしれないが、これでminicondaにインストールしたPythonは呼び出すことができるようになる。

// Pythonスクリプトのコマンド設定(一部抜粋)
$python_command = get_option('bg_remover_python_command', '/home/ユーザー名/miniconda3/envs/仮想環境名/bin/python');
$python_command_escaped = escapeshellcmd($python_command);
$script_path_escaped = escapeshellarg($this->python_script_path);
$input_path_escaped = escapeshellarg($input_path);
$save_path_escaped = escapeshellarg($save_path);

まとめ

Minicondaを用いることで、エックスサーバーの環境でも柔軟で効率的なPython環境を構築できる。 本記事の手順を参考に、エックスサーバーでWebアプリケーションの公開を進めてほしい。


参考資料

コメント