モジュール(my_mod.py
フォルダにあるファイルmy_module
)を作成しました。現在、私はcool_script.py
フォルダにあるファイルで作業していますcur_proj
。ファイルを使用してPyCharmのフォルダーを開きました-開く(そして私は、したがって、それはPyCharmプロジェクトであると想定しています)。
ProjectView(CMD-7)では、自分のプロジェクトcur_proj
(赤)が表示され、[ 外部ライブラリ]の下に表示されmy_module
ます。cool_script.pyで、私は書くことができます
from my_module import my_mod as mm
そしてPyCharmはmy_modを提案します。ここまでは順調ですね。
ただし、cool_script.pyを実行しようとすると、PyCharmから「my_moduleという名前のモジュールはありません 」と表示されます。
これは私には奇妙に思えます、なぜなら
A)ターミナル(OS 10.10.2)、Pythonでは、モジュールを問題なくインポートできます-.bashrcのPYTHONPATHに対応するエントリがあります
B)PyCharmで-設定-プロジェクトcur_proj-プロジェクトインタープリター-Pythonインタープリターの横にあるCogWheel-詳細-選択したインタープリターアイコンのパスを表示、PYTHONPATHからのパスが表示されます(私が思うに)
したがって、cool_script.pyを実行しようとするとエラーが発生するのはなぜですか?- 何が欠けていますか?
ノート:
- 私は別の/特別なPythonのバージョンを宣言していない cool_script.pyのトップに
- へのパスが正しいことを確認しました
my_module
- ファイル(空のファイル)を両方に入れ
__init__.py
my_module
ましたcur_proj
- 私は使っていません
virtualenv
補遺2015年2月25日
PyCharmで[実行-構成の編集]に移動すると、現在のプロジェクトに対して、「コンテンツルートをPYTHONPATHに追加する」と「ソースルートをPYTHONPATHに追加する」というチェックマークが付いた2つのオプションが選択されます。。両方をオフにすると、モジュールをロードできます。
それで今は機能しますが、なぜですか?
さらなる質問が浮上しました:
- 「コンテンツルート」とは何ですか。「ソースルート」とは何ですか。そして、なぜPYTHONPATHに何かを追加すると、どういうわけか壊れるのですか?
- これらのオプションの両方を常にオフにする必要がありますか(プロジェクトの特定の構成(実行/デバッグ構成ダイアログの左側のパネル)だけでなく、デフォルトでも)?
Enable Django Support
設定Languages & Frameworks -> Django
のチェックを外すことです。インポートの問題の原因となったdjangoコンソールを開いていました。
from foldername.mymodule import mymethod
。私がしなければならないもう1つのことは、2つのフォルダーでinitが必要になる場合に備えて、モジュールにアクセスするために使用するすべてのフォルダーに空の_init .pyフォルダーを追加することですfrom parentfolder.childfolder.mymodule ...
。フォルダーが互いに相対的に配置されている場所に応じてsys.path
、この回答で