Python 从并行目录导入模块

2024-01-10

我将如何组织我的 python 导入,以便我可以拥有这样的目录。

project
|      \
|      __init__.py
|     
src
|   \
|    __init__.py
|    classes.py
|
test
    \
     __init__.py
     tests.py

然后在 /project/test/tests.py 中能够导入classes.py

我在tests.py 中有类似这样的代码

from .. src.classes import(
    scheduler
    db
)

我收到以下错误

SystemError: Parent module '' not loaded, cannot perform relative import

有人知道该怎么办吗?


Python 将包含您启动的脚本的文件夹添加到 PYTHONPATH,因此如果您运行

python test/tests.py

仅文件夹test添加到路径(而不是您正在其中执行命令的基本目录)。

相反,像这样运行测试:

python -m test.tests

这会将基本目录添加到 python 路径,然后可以通过非相对导入访问类:

from src.classes import etc

如果你确实想使用相对导入风格,那么你的3个目录需要添加到包目录中

package
* __init__.py
* project
* src
* test

然后您从包目录上方执行它

python -m package.test.tests

也可以看看:

  • https://docs.python.org/2/using/cmdline.html https://docs.python.org/2/using/cmdline.html
  • http://www.stereoplex.com/blog/understanding-imports-and-pythonpath http://www.stereoplex.com/blog/understanding-imports-and-pythonpath
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 从并行目录导入模块 的相关文章

随机推荐

  • Rails 2:使用form_for构建覆盖同一类的多个对象的表单

    对于 Rails 专家来说 这有望是一个灌篮 我有一个应该迭代一组的表单LineItems并收集有关每个的信息 我想得到form for and fields for创建正确的字段名称和参数 为我的控制器提供一个参数哈希 例如 params
  • 禁用 Android 中的主页按钮

    我在我的活动中添加此代码 public boolean onKeyDown int keyCode KeyEvent event if keyCode KeyEvent KEYCODE HOME return false return su
  • 使用 Struts 2 中的拦截器进行身份验证后登录重定向

    我有一个登录页面 登录请求可以来自多个操作类 一旦用户经过验证 我必须将其重定向到上一个操作类 登录请求来自该操作类 我正在使用拦截器来执行此操作 但我错过了一些东西 它无法正确重定向 这是我的代码 public class SetTarg
  • Windows Phone:按下后退按钮时,IE 或 Edge 中缺少模糊事件

    以下场景与 Windows Phone 设备 IE 或 Edge 相关 场景一 如果输入元素具有焦点并且软键盘处于打开状态 则按硬件后退键会模糊焦点元素并按应有的方式弹出键盘 但是 没有触发相应的模糊事件 场景2 如果输入元素具有焦点并且软
  • libpcap 用于捕获 10 Gbps NIC

    我想从10Gbps网卡上抓包 0丢包 我正在将 lipcap 用于 100Mbps NIC 并且工作正常 libpcap 能够处理 10Gbps NIC 流量吗 如果不是 还有什么其他替代方法可以实现这一目标 libpcap 是否能够以 0
  • 如何找到进程的入口点(或基地址) - 处理 ASLR

    由于ASLR 地址空间布局随机化 自Windows Vista起 exe的基地址是随机的 因此无法在PE文件中找到它 在 Visual C 中 DYNAMICBASE 选项默认启用 因此基地址 exe 的运行是随机的 每次加载程序加载它时
  • Socket.SendAsync 需要几秒钟才能完成

    我正在尝试优化 TCP 套接字包装器 该包装器正在处理大量入站连接 我正在一个基本的聊天服务器和一个小型客户端应用程序中测试它 以将客户端发送到它 这两个应用程序都位于通过千兆位交换机连接的单独 W2k3 服务器上 通过反复试验 我将测试改
  • 如何比较postgres中的两个表

    我想比较来自两个不同查询的两个列值 谁能建议一个比较 Postgres 中两列的查询 嗯 最容易理解的 但不一定是最快的 可能是这样的 但你所说的 比较 可能还有其他意思 Values in column1 that aren t in c
  • 子进程调用 ls 时出错

    知道错误想说什么吗 Traceback most recent call last File
  • Jquery - 是否可以重命名 js 函数?

    希望可以有人帮帮我 我有一个类似的功能 是否可以将此函数重命名 或克隆 为my test 2 提前致谢 Peter 功能有一流的物体 http en wikipedia org wiki First class object在 JavaSc
  • 如何更改 Vuetify v-autocomplete 菜单边框半径样式?

    我想改变盒子的样式v autocomplete下拉列表并给出border radius样式到下拉列表 如下图所示 到目前为止我设计的内容如下图所示 到目前为止 我已经将 menu props 属性直接赋予v autocomplete tag
  • 在Powershell中,有没有办法将html转换为具有深度的对象?

    我正在使用 Powershell 来试验网络抓取 想知道是否有更简单的方法来处理元素 有没有办法将 Html 页面转换为 powershell 中具有适当深度的对象 类似于 Convert ToJson Depth 的东西吗 例如 要得到某
  • Eclipse 条件断点,在任何字符串等于处断点

    我有一个大型 遗留 应用程序 我必须对其进行修复 其代码结构很糟糕 代码味道太多 让我窒息 我真的无法弄清楚 gui 中的字符串填充在哪里 因此 如果我能以某种方式在任何字符串 我不知道变量的名称或它在哪里 等于 foobar 时有一个表达
  • 如何使用 Python 自动杀死占用过多内存的进程?

    情况 我有一个网站 允许人们执行任意代码用另一种语言 具体来说 是我创建的 esolang 在共享托管服务器上使用 Python 解释器 我在一个单独的进程中运行此代码 该进程的时间限制为 60 秒 问题 你可以做类似的事情 Python等
  • msbuild 从属性组创建项目组

    我想传递一个以分号分隔的字符串列表 每个字符串代表一个文件名
  • 为什么我永远不应该使用不安全的块来修改字符串?

    我有一个字符串 我想以某种方式修改它 例如 反转或大写 我发现最快的方法是使用不安全的块和指针 例如 unsafe fixed char str text str X 有什么理由让我永远不应该这样做吗 Net 框架要求字符串是不可变的 由于
  • 自定义 Seaborn histplot 子图中的图例

    我正在尝试生成一个包含 4 个子图的图形 每个子图都是 Seaborn 直方图 图形定义线为 fig axes plt subplots 2 2 figsize 6 3 7 sharex True sharey True ax1 ax2 a
  • 训练 Tesseract 特定单词 - 可能吗?

    我想使用 Tesseract 从文档中提取大约 10 20 个关键字 该文档将包含所有英文字符 单词 我感兴趣的是 年龄 23 之类的东西 这里 Age 是我感兴趣的关键字 也想提取 23 它的值 我想到的第一个方法是将整个页面提取为文本
  • 多边形轮廓上的边并不总是正确的

    我使用下面的算法来生成四边形 然后将其渲染以形成如下所示的轮廓 http img810 imageshack us img810 8530 uhohz png http img810 imageshack us img810 8530 uh
  • Python 从并行目录导入模块

    我将如何组织我的 python 导入 以便我可以拥有这样的目录 project init py src init py classes py test init py tests py 然后在 project test tests py 中