Python:相对导入是否意味着您无法单独执行子包?

2024-04-05

我最近将我的 Python 项目移植到 Python 3.1 上运行。为此,我必须在项目的子模块和子包中采用相对导入的策略。我没有这样做,现在项目本身可以工作,但我注意到我无法执行其中的任何子包或子模块。如果我尝试,我会收到“builtins.ValueError:尝试在非包中进行相对导入”。我只能导入整个项目。

这是正常的吗?


是的,这很正常。如果你想执行一个模块,它也是包的一部分(这本身就是一件奇怪的事情),你需要有绝对导入。当您执行该模块时,从解释器的角度来看,它不是包的一部分,而是__main__模块。所以它不知道相关的包在哪里。

标准方法是在包中包含函数,以及调用函数的单独可执行脚本,因为这使您可以将可执行脚本放在模块外部,例如在 /usr/bin 中

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

Python:相对导入是否意味着您无法单独执行子包? 的相关文章

  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • 我可以在我的机器上同时安装 python 2.7 和 3.5 的tensorflow吗?

    目前我通过 Anaconda 在我的机器 MAC OX 上安装了 Python 2 7 Python 3 5 Tensorflow for Python 3 5 我也想在我的机器上安装 Tensorflow for Python 2 7 当
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • 在 Sphinx 文档中*仅*显示文档字符串?

    Sphinx有一个功能叫做automethod从方法的文档字符串中提取文档并将其嵌入到文档中 但它不仅嵌入了文档字符串 还嵌入了方法签名 名称 参数 我如何嵌入only文档字符串 不包括方法签名 ref http www sphinx do
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • Numpy - 根据表示一维的坐标向量的条件替换数组中的值

    我有一个data多维数组 最后一个是距离 另一方面 我有距离向量r 例如 Data np ones 20 30 100 r np linspace 10 50 100 最后 我还有一个临界距离值列表 称为r0 使得 r0 shape Dat
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • 在本地网络上运行 Bokeh 服务器

    我有一个简单的 Bokeh 应用程序 名为app py如下 contents of app py from bokeh client import push session from bokeh embed import server do
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • 使用 z = f(x, y) 形式的 B 样条方法来拟合 z = f(x)

    作为一个潜在的解决方案这个问题 https stackoverflow com questions 76476327 how to avoid creating many binary switching variables in gekk

随机推荐

  • Java 中函数指针最接近的替代品是什么?

    我有一个大约十行代码的方法 我想创建更多的方法来完成完全相同的事情 除了将更改一行代码的小计算之外 这是一个完美的应用程序 用于传递函数指针来替换该行 但 Java 没有函数指针 我最好的选择是什么 匿名内部类 假设你想要一个带有 a 的函
  • 使用node-sass查看所有子目录

    我见过很多使用以下命令观看特定文件夹的示例node sass 但我的 css 并不都在同一个文件夹中 我想让它像你一样监视所有子目录中的 scss 文件onchange 仅举个例子 我假设语法类似于 node sass w app scss
  • 在两个 NodeJS 微服务之间共享自定义代码

    我正在为该应用程序创建 Web 应用程序和微服务 并且两者都需要使用 Sequelize 创建相同的数据库模型 使用 NodeJS 处理此任务的方法是什么 我正在考虑创建我的数据库模型的单独模块并将其保存在私有 git 中 并将此私有 gi
  • Citrix 服务器是否支持 WebView2

    我们有一个来自第三方的应用程序 它需要WebView2 按照说明在我们的机器上安装了 WebView2 它在我们的桌面上运行良好 我们在Citrix服务器中以完全相同的方式安装 但它不起作用 知道 Citrix 服务器是否支持 WebVie
  • Flutter - 获取唯一设备 ID

    我正在制作一个带有基于令牌的系统的应用程序 因此 用户可以购买代币并使用它们进行一些操作 使用电子邮件和密码创建帐户后 每个用户免费获得 10 个代币 作为试用版 我想防止该用户每次都获得一个新帐户来获得另外 10 个令牌 我想知道 And
  • 如何注入ApplicationContext本身

    我想注射一个ApplicationContext本身就是一颗豆子 就像是 public void setApplicationContext ApplicationContect context this context context 春
  • 如何在 bash 中构建条件赋值?

    我正在寻找一种在 bash 中构建条件分配的方法 在 Java 中它看起来像这样 int variable condition 1 0 如果您想要一种在 shell 脚本中定义默认值的方法 请使用如下代码 VAR default 是的 该行
  • Docker compose 指定镜像与 Dockerfile

    我是新来的docker compose阅读完文档后 我仍然有一些不清楚的事情浮现在我的脑海中 到目前为止 当我使用 docker 时 我将构建保存在以下目录树中 builds Service A Dockerfile ServiceA ja
  • 如何使用OpenGL模拟OpenCV的warpPerspective功能(透视变换)

    我在 Python 和 C 中使用 OpenCV 完成了图像变形 看到可口可乐徽标在我选择的角落变形 使用以下图像 和这个 完整专辑 包含过渡图片和说明 https i stack imgur com 40pdD jpg 我确实需要这样做
  • ASP.NET Identity EF 中的动态用户声明

    我正在开发一个使用 ASP NET Identity 和 Entity Framework 的身份验证系统 并且我希望有一些声明是计算值 而不是硬编码到声明表中 当用户登录时 如何将动态声明添加到该登录会话而不实际将其添加到声明表中 例如
  • Hadoop put 命令抛出 - 只能复制到 0 个节点,而不是 1 个

    我是 Hadoop 新手 我正在尝试在我的 ubuntu 机器上进行伪分布式模式设置 并面临以下问题hadoop put命令 我的配置详细信息可以在这篇文章中找到 gt 命令 hadoop namenode format 会做什么 http
  • 使用 Gulp Notify 和 Plumber 的全局错误消息

    是否可以创建一个全局 OnError 函数 我可以将标题和错误消息传递给该函数 我希望对与管道工一起运行的所有任务执行类似的操作 onError function error notify onError title Error subti
  • PhoneGap 应用程序被拒绝 10.6

    我们的 PhoneGap 应用程序刚刚被拒绝 二进制被拒绝 10 6 Apple 和我们的客户高度重视简单 精致 有创意 经过深思熟虑的界面 他们需要更多的工作 但 值得 苹果设定了很高的标准 如果您的用户界面很复杂或者 不太好 可能会被拒
  • 如何在 Eclipse 中为托管 ARM C 项目添加单元测试?

    我有一个托管 Eclipse 项目 它使用 GNU ARM 嵌入式工具链为 ST 微控制器进行编译 我现在想做的是 对该项目中的代码进行单元测试 我想用于单元测试的框架是Google Test 我尝试为单元测试创 建第二个 Eclipse
  • C++ for-each 语句触发“向量迭代器不兼容”断言失败:this->_Getcont() == 0

    这是使用 Visual Studio 2012 static void func const std vector
  • Oracle 数据更改通知超时和工作流程

    美好时光 我们在 Java 应用程序中配置了 Oracle DCN 功能 一切工作正常 但应用程序关闭时出现一些问题 如果应用程序意外关闭 例如 tomcat 进程通过kill 9命令 DCN 订阅者被挂在数据库中 select from
  • SQL服务器重复连接问题

    任何人都可以帮忙 我尝试加入重复的值 但它没有按我想要的方式出现 CREATE TABLE TestTable1 No varchar 50 Value1 float Desc varchar 50 insert into TestTabl
  • 使用 p/invoke 和 win-api 监控音频线路输入 (C#)

    在过去的几天里 我试图编写一个小程序来使用 win api winmm dll 来监视音频线路输入 我可以 pinvoke api 函数 例如 waveInOpen 但我不知道如何使用这些函数来实现我的目标 问题是 有人可以简单地告诉我如何
  • 动画 UITextView 时打字

    我试图拥有一个可变高度的 UITextView 它可以更改大小以适应其内容 但是当尺寸更改动画中的框架发生变化时 UITextView 中不会捕获一两次击键 动画持续时间为 0 1 秒 通常当您打字速度相当快时 它只会漏掉一个字母 然而 当
  • Python:相对导入是否意味着您无法单独执行子包?

    我最近将我的 Python 项目移植到 Python 3 1 上运行 为此 我必须在项目的子模块和子包中采用相对导入的策略 我没有这样做 现在项目本身可以工作 但我注意到我无法执行其中的任何子包或子模块 如果我尝试 我会收到 builtin