1

packageis_english_word内のモジュールで関数を呼び出そうとしています。階層は次のとおりです。dict.pydictionary

DataCleaning
|___ text_cleaner.py
|___ dictionary
     |___ dict.py
     |___ list_of_english_words.txt

明確にするために、私はdict.pylist_of_english_words.txtという 1 つのパッケージを持っていますdictionary

で書かれたインポートステートメントは次のtext_cleaner.pyとおりです。

import DataCleaning.dictionary.dict as dictionary

で書かれたコードは次のdict.pyとおりです。

import os

with open(os.path.join(os.path.dirname(os.path.realpath('__file__')), 'list_of_english_words.txt')) as word_file:
    english_words = set(word.strip().lower() for word in word_file)


def is_english_word(word):
    return word.lower() in english_words

しかし、text_cleaner.pyファイルを実行すると、次のファイルが見つからないため、インポート エラーが表示されますlist_of_english_words.txt

Traceback (most recent call last):
  File "E:/Analytics Practice/Social Media Analytics/analyticsPlatform/DataCleaning/text_cleaner.py", line 1, in <module>
    import DataCleaning.dictionary.dict as dictionary
  File "E:\Analytics Practice\Social Media Analytics\analyticsPlatform\DataCleaning\dictionary\dict.py", line 3, in <module>
    with open(os.path.join(os.path.dirname(os.path.realpath('__file__')), 'list_of_english_words.txt')) as word_file:
FileNotFoundError: [Errno 2] No such file or directory: 'E:\\Analytics Practice\\Social Media Analytics\\analyticsPlatform\\DataCleaning\\list_of_english_words.txt'

しかし、dict.pyコード自体を実行すると、エラーは表示されません。が ではなくos.path.dirname(os.path.realpath('__file__'))のディレクトリを指していることがはっきりとわかります。モジュールが呼び出された場所とは無関係に、モジュールのインポートを行うにはどうすればよいですか?text_cleaner.pydict.pydict.py

4

1 に答える 1