web-dev-qa-db-ja.com

メンテナンスされたvirtualenvサービスの正しい場所は何ですか?

Ubuntuサーバー(12.04)にPython 2.7ベースのサーバーアプリケーションをインストールおよび保守します。メンテナンスのモデルは、virtualenvを作成し、アプリケーション標準ライブラリ(PyPIから)とカスタムライブラリ(特注)をインストールし、必要に応じて更新することです。個別のフォルダーには「アプリケーション」があり、これは構成ファイルとアプリケーション固有のPythonファイルで構成されています。

私が知る限り、必要なUbuntu提供のパッケージはpythonpython-virtualenvだけです。 pew のカスタムインストールを行ってvenvを管理できます。この場合、Sudo easy_install pewを実行し、どこに行っても正しいことを受け入れます(pewは12.04リポジトリにありません)。

アプリケーションは/optまたは/srvまたはそのような場所に存在する必要があり、サーバーアプリケーションはユーザーアプリケーションとは異なる場所に存在する可能性があるという漠然とした認識を持っています。すべてを与える:

  • virtualenvはどこに配置する必要がありますか?
  • サーバーアプリケーションフォルダーはどこに配置する必要がありますか?
6
david.libremone

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>

これにより、さまざまなアプリケーション、バージョンなどに適した複数の独立した仮想環境とアプリケーションフォルダーを作成できます。

1
david.libremone

本質的に、virtualenvの場所は無関係です。好きな場所に配置できます。 source some_venv/bin/activateを実行するだけで、その後に進むことができます。

従来の場所は〜/ .virtualenvsです。

別のセットアップを使用します。異なる仮想環境を含む〜/ projectsフォルダーがあり、異なるプロジェクトのpythonコードを含む 。すべてが揃っているので、これは素晴らしく簡単です。一部の人にとっては、venvにbin、local、その他のフォルダーを取得するため、少し雑然として見えるかもしれません。

これらを管理するには、リポジトリにある virtualenvwrapper を使用します。まだ、ピューをテストする機会がありませんでした。

Virtualenvwrapperとvirtualenvが正しく設定されている場合、ワークフローは次のとおりです。

mkvirtualenv some_venv
workon some_venv
cdvirtualenv
deactivate
2
don.joey