104

次のディレクトリ構造があります。

application
    tests
        main.py
    main.py

application/main.py にはいくつかの関数が含まれています。

tests/main.py にはこれらの関数のテストが含まれますが、最上位の main.py をインポートできません。次のエラーが表示されます。

ImportError: Import by filename is not supported.

次の構文を使用してインポートしようとしています。

import main

私は何を間違っていますか?

4

7 に答える 7

91

スクリプトの移植性を高めたい場合は、親ディレクトリを自動的に見つけることを検討してください。

import os, sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# import ../db.py
import db
于 2015-05-29T18:20:28.667 に答える
5

親ディレクトリの別のサブディレクトリにファイルをインポートするには、次のようにします。

sys.path.append(os.path.abspath('../other_sub_dir'))
import filename_without_py_extension

編集:閉じ括弧がありません。

于 2019-10-30T21:03:43.540 に答える