如何导入子目录中的模块,从而导入同一子目录中的另一个模块?

2024-02-16

在我导入的模块中,我尝试导入位于同一目录中的另一个模块。

我的文件看起来像这样......

project
├── main.py
└── app
    └── foo.py
    └── bar.py

main.py

import app.foo as Foo

foo.py

import bar

所以现在,当我运行 main.py 时,我得到了

ModuleNotFoundError: No module named 'bar'

类似的问题还有很多,但似乎都不是我的具体情况。

我怎样才能让它发挥作用?


从 .. 或 . 进口应该管用:

from . import bar 

记得添加__init__.py(空文件)在应用程序目录内。

编辑:只有使用 foo 和 bar 作为模块才能完成。例如。您将无法运行“python foo.py”或“python foo.bar”。在应用程序目录之外,您可以尝试使用以下代码:

python -m app.foo

(注意缺少 .py 扩展名)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何导入子目录中的模块,从而导入同一子目录中的另一个模块? 的相关文章

随机推荐

  • 使用 UIGestureRecognizer 旋转瓶子

    我现在使用此代码在按钮点击上旋转瓶子 IBAction func spinButton sender AnyObject let rotateView CABasicAnimation let randonAngle arc4random
  • Symfony 2 缓存清除问题

    最近 当我尝试清除缓存时 我的 Symfony 2 网站出现了问题 我在终端中输入以下命令 php app console cache clear env dev 并得到以下错误 ErrorException Warning rename
  • 功能未显示在统一按钮上

    我正在学习 Unity 和 C 我试图使用按钮来触发某些内容 但该功能未显示 这是代码 using System Collections using System Collections Generic using UnityEngine
  • C++ 的 64 位名称修改

    我有一些代码 其中包含以下行 pragma comment linker include test 12 当我使用 C Visual Studio 2010 和配置类型 32 位 我也在 32 位 Windows 机器上 编译代码时 使用此
  • 如何使用 WebMatrix 在 ASP.NET 网页中制作自定义错误页面?

    信不信由你 我试图通过简单的 Google 搜索来寻找这个问题的答案 但我没有找到任何东西 通过 Google 搜索 WebMatrix 自定义错误页面 WebMatrix 如何制作自定义服务器端错误页面 等 但也许我没有使用正确的术语进行
  • boost::asio 和套接字所有权

    我有两个类 谈判者 客户端 都有自己的 boost asio ip tcp socket 有没有办法在协商完成后将套接字对象传输给客户端 我期待着做这样的事情 boost asio ip tcp socket sock1 io boost
  • 如何将请求(python)cookie保存到文件中?

    如何使用图书馆requests 在Python中 请求之后 usr bin env python coding utf 8 import requests bot requests session bot get http google c
  • RcppArmadillo 伽马分布在具有相同种子的平台之间有所不同

    我正在研究一套 https github com osorensen BayesMallows 它使用来自 RcppArmadillo 的随机数 该软件包运行 MCMC 算法 为了获得精确的再现性 用户应该能够设置随机数种子 这样做时 看起
  • 如何让django使用电子邮件而不是用户名注册用户

    我正在尝试创建一个使用名字 姓氏 电子邮件和密码注册用户的网站 我尝试编写此表单并在视图中使用它 from django import forms from django contrib auth models import User fr
  • 在循环的括号内定义循环变量可以吗?

    我对 C 很陌生 但在 C 方面有很多经验 我的大学老师告诉我 在 纯 C 中 初始化循环变量是错误的 在循环括号内 他说是因为VS编译器才运行的 由于某些原因 演示文稿中的所有材料还显示了循环 其循环变量在括号之外声明 for int i
  • C# Selenium:单击 iframe 下的按钮

    我的网站下有一个 iframe 模式 我正在尝试单击按钮 但我无法这样做 下面是我的代码 请告诉我 我错过了什么 driver SwitchTo Frame driver FindElement By Id iframeid frame n
  • 如何从没有上下文的类中调用 getResources() ?

    在我的申请中 我有很多课程和活动 Droid 是一个没有上下文的类 Mygame 是一个扩展 SurfaceView 并实现 SurfaceHolder Callback 的类 我正在 mygame 类中创建一个 Droid 对象 并为其设
  • Android Spinner 上的多个 AsyncTasks 问题

    我收到一些错误 我知道问题是什么 但我不知道如何解决 我有4个旋转器 每个微调器都关联一个异步任务 简而言之 当我在 spinner1 上选择一项时 执行填充 spinner2 的第二个 asynctask 所选项目作为参数添加到第二个 a
  • C# 找不到网络路径

    我在通过网络将文件写入远程目录时遇到问题 当我尝试检查目录是否存在时 以下代码失败 if Directory Exists processingPath Directory CreateDirectory processingPath 处理
  • docker 在应该使用 v2 时却使用了 v1 注册表 api

    我正在尝试使用自托管 docker 注册表 v2 我应该能够推送 docker 映像 该映像在运行registry v2 容器的主机服务器 coreos 上本地工作 但是 在另一台机器 也是 coreos 相同版本 上 当我尝试推送到注册表
  • 使用 C# 中的静态类通过事件通知其他订阅者的简单状态机

    我一直在尝试为我的应用程序编写一个简单的静态类状态机 以便在系统状态更改时通知其他控件和代码 我想我几乎已经解决了 但我遇到了一个小问题 我不知道如何解决 这是代码 An enum denoting the 3 States public
  • 使用 Peewee 库批量更新

    我正在尝试使用更新表内的许多记录Peewee图书馆 里面一个for循环 我获取一条记录 然后更新它 但这在性能方面听起来很糟糕 所以我需要批量更新 当前代码如下所示 usernames to update get target userna
  • Android Firebase:设置值不起作用

    我正在尝试通过以下代码向 Firebase 数据库添加测试值 FirebaseDatabase database FirebaseDatabase getInstance DatabaseReference ref FirebaseData
  • 函数式 JavaScript:避免参数突变的良好实践?

    这是一个相当普遍的问题 函数式编程提倡这样的想法 程序是通过函数转换数据 并且应该避免突变 函数内可能除外 函数内被视为抽象的基本单元 但在这个程序中 function foo bar bar k1 bananas return bar v
  • 如何导入子目录中的模块,从而导入同一子目录中的另一个模块?

    在我导入的模块中 我尝试导入位于同一目录中的另一个模块 我的文件看起来像这样 project main py app foo py bar py main py import app foo as Foo foo py import bar