2017-03-17 7 views
0

が、私はのような構造のパッケージがあるとします。私の場合はPythonパッケージが単なるモジュールの場合、そのモジュールを姉妹モジュールからインポートしてその機能を公開できますか?

root 
+-- package_as_a_module.py 
+-- setup.py 
+-- requirements.py 

を、package_as_a_module.pyは当初予想よりもはるかに大きく成長している、そしてそれは管理が困難になってきています。 、そのので、インストール後に

# package_as_a_module.py 
from utils import func_a 

:ルートディレクトリに新しいモジュールを追加することが可能であり、utils.pyを言う:その後、

# utils.py 
def func_a() 
    return "Hi!" 

などpackage_as_a_module.pyにimport文を経由してutils.pyの機能を公開from package_as_a_module import func_aを使用できますか?

これを成功させようと試みましたが、hereです。メインモジュールのインポート元のモジュールが認識されず、インポートが失敗します。おそらく、init .pyファイルなどで、これが本当のパッケージ構造で可能であると思われます。私はそれに次の渦を与えるでしょう。

誰にも代替案が提示されない場合は、私自身の質問に否定的な答えをします。

+1

試しましたか? –

+0

@ st.ph.n私が帰宅する今晩まで、私はチャンスを得ることはできません。それ以前に誰も答えなければ、自分の質問に答えます。 –

+1

私はちょうどPoCのラインに沿って行っていました。あなたが試したことを示すべきであり、失敗しました。そして今あなたは助けを求めています。理論的には、動作するはずですが、モジュールの他の依存関係に依存します。 –

答えて

0

できます。

main_module.pyファイルでは、print_all()関数を呼び出さなかったため、何も起こりませんでした。

from module_a import print_hello_world as phw_a 
from module_a import print_hello as ph 
from module_b import print_hello_world as phw_b 


def print_all(): 
    ph() 
    phw_a() 
    phw_b() 

print_all() # You need to call a function for it to do something 
+0

それはしなかったわけではありません何か、輸入は失敗しました。 'pip install THIS_REPO'を使ってパッケージを入手し、' print_all'関数をインポートしようとしています。私がそれをすると、 'module_a not found'の行に沿ってエラーが発生します。モジュールに関数呼び出しを追加するだけで、このエラーは消えてしまい、インポートを認識するでしょうか? –

関連する問題