Python模块的相对路径和顶级脚本

时间:2013-06-24 19:10:01

标签: python relative-path python-module

我有以下目录结构

Root/
    Main.py
    /Controller->
        /MotorController->
            MotorController.py
            __init__.py
    /Tools->
        test.py

现在Tools / test.py有一些测试代码,基本上使用相对路径导入MotorController.py,如下所示

工具/ test.py 来自..Controller.MotorController.MotorController import *

这给出了一个错误,即不能在非包装上使用相对路径。将test.py移动到Root目录可以解决问题但我真的希望我的脚本位于Tools目录中。我该怎么做?。

这是一个相关的问题;假设我在上面创建一个适用于特定机器人的包MotorController.MotorController.py。现在我想要一些仅适用于该特定机器人的校准脚本,因此我计划将该脚本放在与MotorController.py相同的目录中。但是由于相对路径等原因,似乎无法从与Package相同的目录运行脚本。在这种情况下是否存在解决方法或一般原则是什么。

2 个答案:

答案 0 :(得分:0)

要制作文件夹的包,您必须包含__init__.py文件(可以为空) 因此,您应该在根结构的每个文件夹中添加其中一个文件。

答案 1 :(得分:0)

您需要一个文件来指示该文件夹是python包。

标准是一个(通常是空的)__init__.py文件,请注意总共有4个下划线。