これまで、私はディレクトリの私のユーザー名でPythonバージョンをインストールすることに慣れていましたpyenv
。私はDebianパッケージを使ってプロジェクトディレクトリをプロジェクトディレクトリに各プロジェクトを保存するために使用するカスタムPython環境と組み合わせています。pydev
/home/pydev
direnv
pyenv
pip-tools
編集 - このリンクは開発環境の分離の基本を提供します。
https://pwal.ch/posts/2019-11-10-sane-python-environment-2020-part-1-isolation/
編集 - 上記のリンク作成者はここで独自のスタンドアロンPython環境ツールを開発しました(各プロジェクトにPythonバージョンをインストールしたくなかったため、Pyenvとpip-toolsを使用してPythonバージョンをenvライブラリに関連付けました)。
https://github.com/pwalch/lonesnake
私は開発、潜在的な特許公開、Linux Debianサーバーでの運用のためのPythonアプリケーションを作成しています。 FHS(ファイルシステム/srv
階層標準)仕様/opt
。
https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/Linux-Filesystem-Hierarchy.html#opt
/opt/pythonapp01/code0000
/srv/pythonapp01/eod-data
現在開発中のアプリケーションはcsv形式の1日の終了データを使用します。このデータは開発中は更新されませんが、本番環境では毎晩更新されます。 Pythonコードは、ファイルとして保存するためにcsvを別のcsv形式に変換し、これらの変更されたcsvファイルをファイル形式に変換してHighcharts株価チャートを提供します。
私の質問は、Linuxファイルシステム階層でディレクトリを構成する方法です。開発用ファイルを保存し、可能な特許公開をサポートし、生成されたPythonアプリケーションをLinux Debianサーバー上の本番環境に適用する方法は?開発ファイルとドキュメントファイルはユーザーフォルダに配置する必要がありますか? eodデータが入って/srv/pythonapp01
コードが入るべきですか/opt/pythonapp01/code0000
?インストール環境pyenv
も本番環境のアプリケーションディレクトリpip-tools
に移動する必要がありますか?/opt
アプリケーションが本番環境でシステムPythonを使用してはいけないことを読んでおり、本番環境でPythonアプリケーションを設定したことがないため、開発段階の早い段階で指示を得るのに役立ちます。
答え1
以下はいくつかの質問であり、これを3つにまとめました。
Pythonのソースコードと開発ドキュメントをどのように設定しますか?
Pythonアプリケーションをパッケージ化してLinuxにデプロイする方法は?
毎日生成されるデータはどこに保存されますか?
開発と文書ファイルの整理
安全な共有リモートストレージのために、GitLab、GitHub、または同様のGitホスティングサービスとともに、gitなどの最新バージョンの制御ツールであるソース/バージョン制御システムを使用してください。
そのため、プロジェクトやアプリケーションの名前を付けた特別なディレクトリであるリポジトリがあります。
リポジトリのドキュメントとソースコードの配列は、ビルドしている項目によって異なります。私はドキュメントや.md
ファイルをディレクトリ.rst
に保存するのが好きです。通常、プロジェクト/ストレージを説明するものがdocs
あります。README.md
Kenneth Reitzは、次のようにPythonモジュールの構造例を作成しました。 https://github.com/navdeep-G/samplemod。初心者には完全に最小限の内容ではないため、理解できない部分はスキップできますが、良い出発点になります。 https://docs.python-guide.org/writing/struct/構造を説明します。
orをpyenv
使用しているため、以下に説明するデプロイ方法がこれが機能するかどうかは100%確信できませんが、デプロイに実際に必要なのは、新しいPython環境にインストールする必要があるパッケージのリストだけです。インストールされているパッケージをすべて入力すると、しばらく作業環境を作成できます。 aにリダイレクトして保存します。venv
virtualenv,
requirements.txt
requirements.txt
pip freeze
requirements.txt
Pythonアプリケーションをパッケージ化してデプロイする方法は?
うまく機能し、LinuxおよびUnix(Mac)ベースのシステムで「単一ファイル」を展開するのはpex
非常に簡単です。https://pypi.org/project/pex/。短くて明確なチュートリアルがあります:https://medium.com/ovni/pex-python-executables-c0ea39cee7f1。
pex,
開始できる場所に加えて、さまざまなオプションがあります。https://packaging.python.org/en/latest/調べたいなら。
「pyenvとpip-toolsのインストール環境も本番環境の/ optの下のアプリケーションディレクトリに移動する必要がありますか?」という質問に具体的に答えるには、pexファイルが別々であるため、インストールする必要はありません。
毎日のデータはどこに保存されますか?
「eodデータを入れて/srv/pythonapp01
コードに入れなければいけない/opt/pythonapp01/code0000?
」と聞かれました。
/opt/bin/pythonapp01.pex
データの場所はよさそうだが、アプリケーションは/opt/bin
。たとえば、Mac OSでインストールされているホームクラスパッケージは、広く使用されている別のインストール場所です。/opt/bin
PATH
/opt/homebrew/bin.
/usr/local/bin
1から365までの年ごとまたは日付別(階層カタログを使用)など、さまざまなスキームを使用して期限データを保存できます。たとえば、毎日の温度測定値を保存し、/mnt/data/2023/02/06/
毎日新しい日次ディレクトリ、毎月新しい月次ディレクトリ、毎年新しい年間ディレクトリを作成します。
バックアップを維持してください!
これが役に立つことを願っています!