1. ホーム
  2. python

拡張子 .py のない python モジュールをインポートする

2023-08-21 10:21:14

質問

私はfoobarというファイルを持っています(.py拡張子なし)。同じディレクトリに、それをインポートしようとする別のpythonファイルを持っています。

import foobar

しかし、これはファイルをfoobar.pyにリネームした場合のみ動作します。拡張子が.pyでないpythonモジュールをインポートすることは可能でしょうか?

更新: ファイルに拡張子がないのは、私がスタンドアローンのスクリプトとしても使っていて、実行するために.py拡張子をタイプしたくないからです。

更新2: 後述のシンボリックリンクによる解決策を取るつもりです。

どのように解決するのですか?

を使用することができます。 imp.load_source 関数( imp モジュールから)、与えられたファイルシステムのパスから動的にモジュールをロードします。

import imp
foobar = imp.load_source('foobar', '/path/to/foobar')

これは SOディスカッション も、いくつかの興味深い選択肢を示しています。