スクリプトでいっぱいのディレクトリがあります(たとえば、としましょうproject/bin
)。また、ライブラリがありproject/lib
、スクリプトが自動的にそれをロードするようにしたいと思っています。これは、私が各スクリプトの上部で通常使用するものです。
#!/usr/bin/python
from os.path import dirname, realpath, sep, pardir
import sys
sys.path.append(dirname(realpath(__file__)) + sep + pardir + sep + "lib")
# ... now the real code
import mylib
これはちょっと面倒で見苦しく、すべてのファイルの最初に貼り付ける必要があります。これを行うより良い方法はありますか?
本当に私が望んでいるのは、このようにスムーズなものです:
#!/usr/bin/python
import sys.path
from os.path import pardir, sep
sys.path.append_relative(pardir + sep + "lib")
import mylib
または、さらに良いことに、私の編集者(またはコミットアクセス権を持つ他の誰か)が、クリーンアッププロセスの一環としてインポートの順序を変更することを決定しても壊れないもの:
#!/usr/bin/python --relpath_append ../lib
import mylib
それは非POSIXプラットフォームに直接移植しないでしょう、しかしそれは物事をきれいに保ちます。