Ubuntuサーバー(12.04)にPython 2.7ベースのサーバーアプリケーションをインストールおよび保守します。メンテナンスのモデルは、virtualenvを作成し、アプリケーション標準ライブラリ(PyPIから)とカスタムライブラリ(特注)をインストールし、必要に応じて更新することです。個別のフォルダーには「アプリケーション」があり、これは構成ファイルとアプリケーション固有のPythonファイルで構成されています。
私が知る限り、必要なUbuntu提供のパッケージはpython
とpython-virtualenv
だけです。 pew のカスタムインストールを行ってvenvを管理できます。この場合、Sudo easy_install pew
を実行し、どこに行っても正しいことを受け入れます(pewは12.04リポジトリにありません)。
アプリケーションは/opt
または/srv
またはそのような場所に存在する必要があり、サーバーアプリケーションはユーザーアプリケーションとは異なる場所に存在する可能性があるという漠然とした認識を持っています。すべてを与える:
Djangoアプリケーションの場合、 Adam Bardが推奨 virtualenvを/opt/apps/<appname>-env
に配置し、アプリケーションを/opt/apps/<appname>-env/site
に配置します。 (優れたリンクについては、don.joeyに感謝します。)
少し無関係ですが、Hynek Schlawackの Python Deployment Anti-Patterns および ネイティブパッケージを使用したPythonアプリケーションのデプロイメント が有用な読み取りであることがわかりました。
これに基づいて、 Filesystem Hierarchy Standard とデスクトップマシン上の/opt
フォルダーの検査についての私自身のレビューに基づいて、
/opt/virtualenv/<env_name>
仮想環境用/opt/<vendor_name>/<app_name>
これにより、さまざまなアプリケーション、バージョンなどに適した複数の独立した仮想環境とアプリケーションフォルダーを作成できます。
本質的に、virtualenvの場所は無関係です。好きな場所に配置できます。 source some_venv/bin/activate
を実行するだけで、その後に進むことができます。
従来の場所は〜/ .virtualenvsです。
別のセットアップを使用します。異なる仮想環境を含む〜/ projectsフォルダーがあり、異なるプロジェクトのpythonコードを含む 。すべてが揃っているので、これは素晴らしく簡単です。一部の人にとっては、venvにbin、local、その他のフォルダーを取得するため、少し雑然として見えるかもしれません。
これらを管理するには、リポジトリにある virtualenvwrapper を使用します。まだ、ピューをテストする機会がありませんでした。
Virtualenvwrapperとvirtualenvが正しく設定されている場合、ワークフローは次のとおりです。
mkvirtualenv some_venv
workon some_venv
cdvirtualenv
deactivate