Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Python-ValueError:尝试在非包中进行相对导入_Python 2.7 - Fatal编程技术网

Python 2.7 Python-ValueError:尝试在非包中进行相对导入

Python 2.7 Python-ValueError:尝试在非包中进行相对导入,python-2.7,Python 2.7,这是我的目录结构 PyCharm Python PRD _AppFunc DbUtils.py __init__.py _AppCode DataExtract.py __init__.py __init__.py __init__.py 我的PYTH

这是我的目录结构

PyCharm
    Python
        PRD
            _AppFunc
                DbUtils.py
                __init__.py

            _AppCode
                DataExtract.py
                __init__.py

            __init__.py

        __init__.py
我的PYTHONPATH设置为C:\Users\username\Desktop\PyCharm\Python\PRD

在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
回溯(最近一次呼叫最后一次):
文件“C:\Users\username\Desktop\PyCharm\Python\PRD\\u AppCode\DataExtract.py”,第36行,from..\u AppFunc import DbUtils
ValueError:尝试在非包中进行相对导入
如果我将DBUtils.py移出_AppFunc文件夹并移到PRD下,它可以正常工作。 但我打算将其保存在一个单独的文件夹中以限制访问

我已经阅读了与此相关的大部分内容,但无法使其运行

我该怎么做

以下是有效的方法

  • PYTHONPATH
    应设置为根目录。对于所讨论的目录结构,它是
    C:\Users\username\Desktop\PyCharm
  • 从根目录开始的结构中的每个文件夹和子文件夹都应该是一个包。复制粘贴
  • 模块通过完整路径引用导入到主文件中。对于这个问题,它是Python.PRD.\u AppFunc import DbUtils
  • 这就是成功的原因

  • PYTHONPATH
    应设置为根目录。对于所讨论的目录结构,它是
    C:\Users\username\Desktop\PyCharm
  • 从根目录开始的结构中的每个文件夹和子文件夹都应该是一个包。复制粘贴
  • 模块通过完整路径引用导入到主文件中。对于这个问题,它是Python.PRD.\u AppFunc import DbUtils