2016-12-13 11 views
0

したがって、私は現在のPythonプロジェクトで以前作成したクラスを入力したいと思います。PyDevプロジェクトに複数のモジュールを組み込みます

この目的のために、libという名前のフォルダを作成し、その中に__init__.pyというファイルを1つ作成します。 私のファイル構造は、メインプロジェクトフォルダにある__init__.pyファイルでこの

project_folder 
    lib 
     class1_folder 
      class1.py 
     class2_folder 
      class2.py 
    _init_.py 
    project_script.py 

のように見える、私は、コードの2行を持っています。

from class1_folder import class1 
from class2_folder import class2 

project_script.pyに実装したクラスを使用したいと考えています。彼らが深く入れ子になっていると、どうすればそれらを呼び出すことができますか? project_scriptで は、私がfrom lib.class1_folder.class1 import *次の操作を行います。しかし、私は何をしようとするImportError: No module named class1_folder

答えて

0

パッケージとして扱われる各フォルダに__init__.pyファイルを追加する必要があります(たとえば、とclass2_folderに追加する必要があります)。

0

を得ることはあなたが実際に行う必要があることは内からクラスをインポートで、インポートのclass1を言うことによって、ファイルclass1.pyをインポートしていますclass1.pyファイル(ファイルの名前を変更することをお勧めしますが、少し混乱させます:))。ただ、しかし、心に留めておく

from class1 import Dog 
from class2 import Cat 

を:だから、(混乱を避けるために、ちょうど完全に異なるものを使用する)のは、あなたが使用する必要がありますあなたのクラスは犬と猫が命名されていることを、例えば、言わせて上記のファイルはすべてのファイルが同じディレクトリにある場合にのみ機能するので、すべて同じディレクトリに保存することをお勧めします。

さらに混乱している場合は、「class1 import Dog」から、クラス1はclass1.pyを表していますが、最後にはファイル拡張子がありません。それはクラスの実際の名前を表すものではありません。

+0

libフォルダではできませんか?ここでの問題は、自分のプロジェクトの多くで使用する1つの統合モジュールを作成したいということです。私は自分の仕事のニーズに合わせて特定のデータ型とIO関数を実装しました。 1つのプロジェクトフォルダにこれらのスクリプトがすべてあれば、プロジェクト全体が非常に乱雑になります... – Jack

関連する問題