「scripts」ディレクトリに存在する実行可能なpythonスクリプトがあり、ルートディレクトリにそのスクリプト(ファイルの起動に使用される)へのシンボリックリンクがあります。何かのようなもの:
.
├── scripts
│ ├── const.py
│ ├── fops.py
│ ├── i_build.py
│ └── i_Props.ini
└── build_i -> scripts/i_build.py
次の方法でスクリプトを起動/実行できるようにしたいと思います。
python build_i
ルート ディレクトリから。i_build.py スクリプトは i_Props.ini を開こうとし、そこにあるものに基づいていくつかの魔法を実行します。
問題は、i_build.py スクリプトがルート ディレクトリのシンボリック リンクを介して起動されると、i_build.py スクリプトが他のファイルのルート ディレクトリを検索することです (i_build.py が保存されている /scripts ディレクトリではありません)。
i_build.py ファイルの props ファイルの場所は次のとおりです。
PROP_FILE = "i_Props.ini"
それを開こうとして失敗します。明らかな理由から、パスをハードコーディングしたくありません。
メインファイルに追加する簡単なテストos.getcwd()
では、CWD がルートディレクトリであると考えているという私の疑いが確認され、チェックすると、__file__
それがシンボリックリンク ("build_i") であることがわかります。
__file__
名前やCWDなどのシンボリックの宛先をPythonに使用させるためにできることはありますか?