2017-12-19 5 views
-2

test.pyというファイルがディレクトリにあります(例:/pyproject)。そして/pyprojectにサブディレクトリがgmailfacebookと呼ばれる2 subdirectorysを持っており、両方のディレクトリに.pyファイルを持っているapiと呼ばれているような:Pythonのサブフォルダからモジュールやファイルをインポートするには?

/pyproject/api/gmail/abc.py 
/pyproject/api/facebook/xyz.py 

持っtest.pyから輸入ABCとXYZのPYファイル:

import api.gmail.abc 
結果

File "./test.py", line 3, in <module> 
    import api.gmail.abc 
ImportError: No module named api.gmail.abc 

があります任意のアイデアをどのようにトンでありますoサブディレクトリからメインtest.pyファイルにxyz/abcをインポートしますか?

答えて

-1

いくつかのR & Dを行った後、それを行っている だけ__init__.py(空PYファイル)を作成し、すべてのサブディレクトリに など

/pyproject/ 
    api/ 
     __init__.py 
     gmail/ 
      __init__.py 
      abc.py 

     facebook/ 
     __init__.py 
     xyz.py 

を、それを追加し、メインPYファイルに追加する必要があり

from api.gmail.abc import * 
or 
import api.gmail.abc 
+0

ansと質問には何がありますか? –

0

各ディレクトリに空の__init__.pyファイルが必要です。これは、このフォルダがモジュールであることをPythonに知らせるマーカーです。私はそれがpython2の問題を解決すべきだと思います。

では、python3のインポートがわずかに変更されており、コマンドラインパラメータ-mも使用する必要があります。

あなたが実行しようとしているファイルは、プロジェクトのルート.../pyproject/に作業ディレクトリを設定し、実行する必要がある例.../pyproject/src/scraper.py 用の場合:

この例では

python -m src.scraper

私は長いを使用サブディレクトリが/の代わりに.で区切られていることを示します。あなたの場合、python -m testは正常に動作するはずです。

関連する問題