2017-11-15 7 views
2

私はこれについてはっきりしていません:__init__.pyは現在のフォルダをモジュールといいますか?下位レベルファイルからトップレベルファイルをインポートする

私のトップレベルプロジェクトフォルダ、my_projectのであれば、ファイルconfig.pymy_project/config.py)が含まれ、その後、my_project/drivers/sales/customer.py内のファイルは、単純でconfig.pyモジュールをインポートすることができる必要があります:(:ModuleNotFoundError: No module named 'my_project'にエラー)

  • import my_project.config
  • またはfrom .. import config(エラー:ValueError: attempted relative import beyond top-level package) - Btwは、同じエラーで3つのドット(...)で試しました。次の端末コマンドを使用して、

  • あるいは、(ModuleNotFoundError: No module named 'config'にエラー):単にimport config

    (env) localhost:/Users/myname/Sites/my_project 
    $ python drivers/sales/customer.py 
    

    は、どのように私は、このインポートを達成することができますか?

    バージョン:

    $ python 
    Python 3.6.2 (default, Jul 17 2017, 16:44:45) 
    
  • +0

    があまりにも最近、私の頭をフェラ、イムは、あなたのケースで考えるその..インポートの設定から、あなたのファイルが2レベルの深さと、その2つのドット – Kris

    +0

    @ Kris同じエラー。上記を参照 – Growler

    +0

    最後に試してみてください:空の__init__.pyをsalesフォルダに追加してみましたか?これは推測のような感じですが、私はまだ私の頭のarround pythonの相対インポートをラップできません... – Kris

    答えて

    0

    一つの方法は、以下のようにプロジェクトのパスを公開することです:

    import sys 
    sys.path.append('path/to/your/project') # /Users/nabin/Desktop in my case 
    

    #I have "my_project" in Desktop i.e /Users/nabin/Desktop/my_project

    その後、あなたは以下の

    from my_project import config 
    
    を行うことができます

    組み合わせたときに、何が必要すると、次のされています

    import sys 
    sys.path.append('path/to/your/project') 
    
    from my_project import config 
    
    関連する問題