インストール可能なUnixAPIでパスを維持する

インストール可能なUnixAPIでパスを維持する

Unix環境で仮想マシン用のAPIを開発しています。ほとんどのモジュールはPythonで開発されています。これについていくつかの質問があります。

APIの内部では、 '/root/virtman/manager/'などの絶対パスを使用します。すべてのUnix環境でこのAPIを実行することを考慮して、この絶対パスをすべてのOS /マシンに汎用にする方法は何ですか?それとも、APIがインストールされている特定の場所を想定し、どこにもそのパスを提供する必要がありますか?

多くの記事を読んでいますが、はっきりと理解していないので、どんなヒントや提案でも役に立ちます。

ベストアンサー1

パスが呼び出されている実行可能ファイルのみを指す場合、インストール中にリンクを標準位置(/usr/bin/または/usr/local/bin

以下を使用します。

/usr/bin/myprog    
/opt/myprog/bin/myprog
/opt/myprog/data/picture_01.img

にはならないリンク/usr/bin/myprogがあります。 do経由でリンクを設定し、doに含めます。/opt/myprog/bin/myprog/opt/myprog/bin/$PATHsudo ln -s /opt/myprog/bin/myprog /usr/bin/opt/myprog/bin/myprog

import sys
import os

base_dir = os.path.realpath(sys.argv[0]).rsplit('/bin/', 1)[0]

/opt/myprog実行時に動的に決定


Python APIを含むいくつかのモジュールに基づいている場合は、そのモジュールがシステムPythonのPYTHONPATH検索パスにインストールされていることを確認してから、Python実行可能ファイルimport yourapimoduleでそれを実行して使用できます。


どこにでもインストールできるデータファイルの場合は、読みやすい設定ファイル(例:~/.config/yourapimodule/config.ini~/.yourapimodule/config.ini~/.yourapimodule.ini.ini.json

1 Shamelessプラグ:Pythonを使用してargparseコマンドライン引数を処理する場合は、このパッケージを確認してください。ruamel.appconfig私が作成した設定を設定し、コマンドライン解析のために設定ファイルにデフォルト値を割り当てることができます。

おすすめ記事