当前位置: 首页 > 知识库问答 >
问题:

Python模块相对路径和顶层脚本

亢奇
2023-03-14

我有以下目录结构

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

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

工具/test.py...控制器。电机控制器。MotorController导入*

这会导致一个错误,即不能在非包上使用相对路径。移动测试。py到根目录解决了这个问题,但是我真的希望我的脚本位于Tools目录中。我该怎么做?。

这是一个相关的问题;假设我做了一个包裹。汽车控制器。类似上面的py,在特定的机器人上工作。现在我想要一些只在特定机器人上工作的校准脚本,因此我计划将该脚本放在与MotorController相同的目录中。皮耶。但是,由于相对路径等原因,似乎无法从与包相同的目录运行脚本。在这种情况下,是否有解决方法或一般原则是什么。

共有2个答案

吴英武
2023-03-14

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

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

窦华晖
2023-03-14

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

 类似资料:
  • 问题内容: 给定相对路径,如何导入Python模块? 例如,如果包含和,和包含,我怎么导入到? 这是一个视觉表示: 希望包含,但是重组文件夹层次结构不是一种选择。 问题答案: 假设你的两个目录都是真实的Python包(文件中确实有文件),那么这是一个相对于脚本位置包含模块的安全解决方案。 我假设你想这样做,因为你需要在脚本中包括一组模块。我在多个产品的生产环境中使用了此功能,并在许多特殊情况下工作

  • 主要内容:什么是当前工作目录,什么是绝对路径与相对路径,Python处理绝对路径和相对路径在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。 什么是当前工作目录 每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。 注意,虽然文件夹是目录的更新的名称,但当前工作目录(或当前目录)是标准术语,没有当前工作文件夹这种说法。 在 Python 中,利用 os.getcwd() 函数可以取得当前工作路径的字

  • 问题内容: 我正在python 2.7中开发自己的模块。它位于而不是或中。内部结构为: 包括课程。我遇到导入问题: 我没有将PythonPath设置为包括我的,因此,当server.http尝试包含client.PyCachedClient时,它将尝试从相对路径加载它并失败。我的问题是- 我应该如何以良好的pythonic方式设置所有路径/设置?我知道每次打开控制台并尝试运行服务器时都可以在she

  • 在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如,在《 Linux文件系统的层次结构》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。 指明一个文件存放的位置,有 2 种方法,分别是使用 绝对路径和 相对路径。 我们知道,Linux 系统中所有的文件(目录)都被组织成以根

  • rank ▲ ✰ vote url 53 400 168 184 url 从相对路径引入一个模块 怎么用相对路径引入一个模块? 例如,如果dirFoo包含Foo.py和dirBar,而dirBar包含Bar.py,怎么样才能在Foo.py里引入Bar.py? 结构: dirFoo\ Foo.py dirBar\ Bar.py Foo希望包含Bar,但是重新组织文件

  • 这是我自己的USB驱动器上的程序文件夹: 我想使用启动 我不能使用这个: