Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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
Python2.7导入时出错_Python_Import_Importerror - Fatal编程技术网

Python2.7导入时出错

Python2.7导入时出错,python,import,importerror,Python,Import,Importerror,我知道有很多关于包内导入的问题已经发布。我想知道下面是否也是Python2.7的方式 Source/ anomalyCheck/ __init__.py DLthput.py ULPowerStats.py ULThput.py config/ __init__.py configure.py parserTools/ __init__.py logParser.py utilities/ __init__.py p

我知道有很多关于包内导入的问题已经发布。我想知道下面是否也是Python2.7的方式

Source/
anomalyCheck/
    __init__.py
    DLthput.py
    ULPowerStats.py
    ULThput.py
config/
    __init__.py
    configure.py
parserTools/
    __init__.py
    logParser.py
utilities/
    __init__.py
    plotLogResults.py
__init__.py
lteDebugger.py
----LTE.py----

------DLThput.py------

------ULThput.py-------

错误:

运行lteDebugger.py文件时,错误为

ValueError: Attempted relative import beyond toplevel package File "C:\Users\manojtut\Desktop\Project_LTE_SVN\Source\lteDebugger.py", line 2, in import anomalyChecker.DLthput File "C:\Users\manojtut\Desktop\Project_LTE_SVN\Source\anomalyChecker\DLthput.py", line 1, in ValueError:尝试在顶级包之外进行相对导入 文件“C:\Users\manojtut\Desktop\Project\u LTE\u SVN\Source\lteDebugger.py”,第2行,在 导入异常检查器.DLthput 文件“C:\Users\manojtut\Desktop\Project\u LTE\u SVN\Source\anomalyChecker\DLthput.py”,第1行,在 我已经阅读了几乎所有可用的文档和Guido的包内导入指南。而且,我想我把所有东西都放在正确的地方了。我是不是遗漏了什么?请指出。事先非常感谢。:)


编辑1:Amber的回答解决了提到的问题。因此,通过导入所有其他模块,lteDebugger.py工作正常。现在,另一个问题是,我无法解决的是。。。当我想编译/解释(不管你想调用什么)DLThput.py/ULthput.py时,它显示了与上面相同的错误。。。ValueError:尝试在顶级包之外进行相对导入。我有没有其他的解决方案来添加系统黑客?我真的不想那样做,除非这是唯一可以做的事。
那么,我怎样才能避开这个呢

您正在运行
lteDebugger.py
,这意味着任何“包”必须在目录树中至少低一级-它们需要包含在一个文件夹中,以便Python将它们识别为包而不是模块(从而使相对导入工作)

anomalyCheck
被识别为一个包,但它的父目录不是(因为
lteDebugger.py
所在的位置),因此不允许使用相对导入进入该父目录

解决此问题的一种方法是将除
lteDebugger.py
之外的所有内容移动到子目录中,例如:

Source/
    debugger/
        anomalyCheck/
            __init__.py
            DLthput.py
            ULPowerStats.py
            ULThput.py
        config/
            __init__.py
            configure.py
        parserTools/
            __init__.py
            logParser.py
        utilities/
            __init__.py
            plotLogResults.py
        __init__.py
    lteDebugger.py

然后,
lteDebugger.py
将在“from..utilities.plotLogResults import*”中执行类似于导入调试器.anomalyCheck.DLthput.py

的操作,如导入调试器.anomalyCheck.DLthput.py???我认为您仍然可以使用“from utilities.plotLogResults import*”导入。不,我认为我不能。我会查一下的。谢谢你提前回答。因此,您需要将lteDebugger.py所在目录的路径添加到sys。对吗?让我试试。这是一种选择,但如果你这样做,你就不会想使用相对路径——你会想使用绝对路径。如果您想继续使用相对路径,您应该使用我在我的答案中编辑的方法。lteDebugger.py通过导入所有其他模块工作正常。现在,另一个问题是,我无法解决的是。。。当我想编译/解释(不管你想调用什么)DLThput.py/ULthput.py时,它显示了与上面相同的错误。。。ValueError:尝试在顶级包之外进行相对导入,因此,我如何避免此问题?包的内容不应直接运行。如果您想解释它们,通常只需导入它们。您可以从顶层目录(运行
lteDebugger.py
的同一位置)运行Python,然后执行类似于导入调试器.anomalyCheck.DLThput的操作。鉴于您正在尝试执行的操作,我真的建议不要使用相对导入,而只使用绝对导入。这样,您只需向pythonpath添加一个目录,其中的所有内容都可以正常工作。
from ..parserTools.logParser import *
from ..utilities.plotLogResults import *
ValueError: Attempted relative import beyond toplevel package File "C:\Users\manojtut\Desktop\Project_LTE_SVN\Source\lteDebugger.py", line 2, in import anomalyChecker.DLthput File "C:\Users\manojtut\Desktop\Project_LTE_SVN\Source\anomalyChecker\DLthput.py", line 1, in
Source/
    debugger/
        anomalyCheck/
            __init__.py
            DLthput.py
            ULPowerStats.py
            ULThput.py
        config/
            __init__.py
            configure.py
        parserTools/
            __init__.py
            logParser.py
        utilities/
            __init__.py
            plotLogResults.py
        __init__.py
    lteDebugger.py