2012-01-21 15 views
2

私はサブディレクトリからすべてのファイルをインポートしようとしているので、ファイルをインポートするためにそのサブディレクトリに__init__.pyと書くことができます。しかし、私がこれをするとき、何も輸入していないようです。サブディレクトリをインポートするPython

ファイル構造:

prog.py 
module/ 
    __init__.py 
    code.py 

コードprog.py用:__init__.pyためpass

コード:code.pyためimport code

コード:print('hello')

私は実行prog.py何も起こりません。なぜそれはhelloを印刷しませんし、サブディレクトリからすべてを簡単にインポートするためのよりよい方法はありますか?

+0

ファイル構造にディレクトリがありません... – Thomas

+0

ありがとうございました。一定。 –

答えて

3

prog.pyでこれを入れて:

import module 

のPythonのみインポートされたパッケージまたはモジュールをロードします。

これを動作させるには、おそらくjcolladoの答えが必要です。

2

は、あなたがこのようなファイル構造を持っているとします

prog.py 
module/ 
    __init__.py 
    code.py 

その後import modulemodule/__init__.pyimport module.codeまたはfrom module import codeでコードをインポートしますローカル名「module.code」または「コードの下module/code.pyにコードをインポートします"

+0

私はこれを認識しますが、私の質問のどちらにも答えませんでした。 –

3

あなたは次のような構造がある場合:packageがである場合、この方法で

from . import module 

import package.module 

またはこの:__init__.py

package 
    __init__.py 
    module.py 

をあなたはこれを試すことができますいずれかPYTHONPATHとすると、予想される動作が得られます。

>>> import package 
hello 
+0

私はこれを認識しますが、私の質問のどちらにも答えませんでした。 –

+0

あなたの質問をもう一度読むと、 'prog.py'には' pass'( 'import'文なし)と' prog.py'だけが含まれていることがわかります。あれは正しいですか? – jcollado

+0

はい。私が理解しているところでは '__init __。py'は関係なく実行し、サブディレクトリから' code.py'をインポートし、progがアクセスできるようにします。 –

関連する問題