デバッグおよび実行中に、pycharmに入力エラーがあります。
私のプロジェクト構造は、etc./HW3/.
が適切にルート化されているため、HW3
がルートディレクトリになります。
HW3にサブフォルダーutil
とファイルutil/util.py
があります。 util
にはrun_tests.py
という別のファイルがあります。
run_tests.py
には、次のインポート構造があります。
from util.util import my_functions, etc.
これにより、入力エラーfrom util.util import load_dataset,proportionate_sample ImportError: No module named 'util.util'; 'util' is not a package
が生成されます
ただし、まったく同じプロジェクトで、util
という別のディレクトリ(data
と同じレベル)に、data/data_prep.py
から関数をインポートするutil/util.py
というファイルがあります。同様のインポート文...そして問題なく実行されます。
明らかに、宿題の過程でこれをやっているので、理解してください。これは宿題の範囲に付随するものです。
ファイルを別のディレクトリに移動すると、問題はなくなります。だから、この質問はpycharmプロジェクトの同じディレクトリにあるpythonファイルをインポートするにはどうすればいいですか? pycharmはimport util
と入力し、ルートのフルネームを使用するように促します。
__init__.py
がない場合は作成してこの行を追加してください
from util.util import my_function
__init__.py
がpythonにそのフォルダーをpythonパッケージとして扱う必要があることを伝えるスクリプトにモジュールを簡単にインポートできます。また、インポート/ロードにも使用できます。モジュールも。
ほとんどの場合、__init__.py
は空です。
ドキュメントを引用する
__init__.pyファイルは、Pythonがディレクトリをパッケージを含むものとして扱うために必要です。これは、文字列などの共通名を持つディレクトリが、後でモジュール検索パスで発生する有効なモジュールを意図せずに隠さないようにするために行われます。最も単純なケースでは、__ init__.pyは空のファイルになりますが、パッケージの初期化コードを実行したり、後で説明する__all__変数を設定したりすることもできます。
推奨される方法:
作業フォルダーをSources
として設定してください。
Pycharm
->
Preferences
->
Project: XYZ
->
Project Structure
作業フォルダーを選択し、Sources
としてマークします。次に、Pycharmは作業フォルダーをプロジェクトのソースフォルダーとして認識し、次を使用してそのフォルダー内に他のファイルを簡単に追加できます。
import filename.py
または
from filename.py import mudule1
=================
推奨されない方法:
Pycharm
には、単に.
の前に .py
ファイルを同じフォルダからインポートします。あなたの場合、それは
from .util import my_functions
注:少し無関係かもしれません。
私は同じ問題に直面していましたが、jupyter Notebook(ここではディレクトリに__init__.pyがありませんでした)。奇妙なことに、私はpythonパスとインタープリターの場所などをセットアップしました。他の回答はどれも助けになりませんでしたが、pythonのディレクトリを変更しても役に立ちました。
import os
os.chdir(/path/to/your/directory/)
PyCharm 2017.3
でUbuntu 16.04
を使用しています
私はpycharmでも同じ問題を抱えていましたが、実際の間違いは、スタンドアロンスクリプトとして実行できたにもかかわらず、インポートしようとしたファイルに.py拡張子がなかったことです。 Explorerウィンドウを見て、拡張子が.pyであることを確認します。そうでない場合は、エクスプローラウィンドウでファイルを右クリックし、リファクタリングを選択して、拡張子を.pyに変更します。