2017-10-19 8 views
0

これは私のディレクトリ構造です。Python - ValueError:非パッケージで相対インポートを試みました

PyCharm 
    Python 
     PRD 
      _AppFunc 
       DbUtils.py 
       __init__.py 

      _AppCode 
       DataExtract.py 
       __init__.py 

      __init__.py 

     __init__.py 

そして、私のPYTHONPATHをCに設定されています:\ Users \ユーザー名\デスクトップ\ PyCharm \ Pythonの\ PRD私が使用してDbUtils.pyインポートしようとしていますDataExtract.pyで

from .._AppFunc import DbUtils 

そして、このエラーを取得...

Traceback (most recent call last): 
File "C:\Users\username\Desktop\PyCharm\Python\PRD\_AppCode\DataExtract.py", line 36, in <module> from .._AppFunc import DbUtils 
ValueError: Attempted relative import in non-package 

私は_AppFuncフォルダの外とPRD下DBUtils.py移動すると、それが正常に動作します。 しかし、私は別のフォルダにアクセスを制限するためにそれを保持するつもりです。

これに関連して、ほとんどstack overflow threadspython doc on intra-package-referencesを読みましたが、実行できませんでした。

どうすればいいですか?ここで

答えて

0

は働いていたものです...

  1. PYTHONPATHがルートに設定する必要があります。問題のディレクトリ構造についてはC:\Users\username\Desktop\PyCharm
  2. ルートから始まる構造内の各フォルダとサブフォルダはパッケージにする必要があります。ペーストをコピーする__init__.pyおよび__init__.pyc
  3. モジュールはフルパスリファレンスでメインファイルにインポートされます。この質問については、Python.PRD._AppFunc import DbUtils
関連する問題