如何按名称导入自定义Python包

2023-12-13

我创建了一个名为“custom_module”的文件夹,并且该文件夹内有 __init__.py,其中包含:

__all__ = [
        'Submodule1',
        'Submodule2'
]

从我读到的文档中我应该能够调用import custom_module并访问该包,但这并没有发生。如何让 python 识别我的包?我正在使用 python 3.2

Update:该包不在 python 文件夹中。 python环境如何找到它,所以我可以成功地通过名称导入它。


有两个不同的概念让您感到困惑:packages and modules.

A module正如您所想的那样:一个包含类、变量等的 Python 脚本。您可以通过文件名导入它,然后可以访问其命名空间中的变量。

A package是分组在一个文件夹内的模块的集合。如果该文件夹包含一个名为__init__.py,Python 将允许您导入整个文件夹,就好像它是一个模块一样。这将运行代码__init__,但不一定会导入该文件夹中的所有模块。 (这是一个经过深思熟虑的设计选择:包通常非常大,导入所有模块可能需要很长时间。)

唯一出口的东西(如package.thing) 默认情况下是里面定义的变量__init__。如果你想submodule可以作为package.submodule,你需要将其导入到里面__init__.

__all__是一个相关的概念。简而言之,它定义了您执行操作时导入的内容from package import *,因为 Python 不容易弄清楚它应该是什么。一般情况下你不需要它。

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

如何按名称导入自定义Python包 的相关文章

  • 从 ffmpeg 获取实时输出以在进度条中使用(PyQt4,stdout)

    我已经查看了很多问题 但仍然无法完全弄清楚 我正在使用 PyQt 并且希望能够运行ffmpeg i file mp4 file avi并获取流式输出 以便我可以创建进度条 我看过这些问题 ffmpeg可以显示进度条吗 https stack
  • 如何在 pytest 中将单元测试和集成测试分开

    根据维基百科 https en wikipedia org wiki Unit testing Description和各种articles https techbeacon com devops 6 best practices inte
  • 填充两个函数之间的区域

    import matplotlib pyplot as plt import numpy as np def domain x np arange 0 10 0 001 f1 lambda x 2 x x 2 0 5 plt plot x
  • 忽略 Mercurial hook 中的某些 Mercurial 命令

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • 为什么在 Python 2.4 中使用 Unicode 数据会出现 ASCII 编码错误,而在 2.7 中却不会?

    我有一个程序 当在 Python 2 7 中运行时 会生成正确的 Unicode 输出到标准输出 当在 Python 2 4 中运行时 我得到UnicodeEncodeError ascii codec can t encode chara
  • Python urllib.request.urlopen:AttributeError:'bytes'对象没有属性'data'

    我正在使用 Python 3 并尝试连接到dstk 我收到错误urllib包裹 我对SO进行了很多研究 但找不到与这个问题类似的东西 api url self api base street2coordinates api body jso
  • 在flatpak项目中使用scrapy脚本

    我正在构建一个 flatpak 构建的项目 我有一个按钮 当单击它时我希望它运行 scrapy 脚本来抓取数据 窗口用户界面
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • 按元组分隔符拆分列表

    我有清单 print L I WW am XX newbie YY ZZ You WW are XX cool YY ZZ 我想用分隔符将列表拆分为子列表 ZZ print new L I WW am XX newbie YY ZZ You
  • 将 2D NumPy 数组按元素相乘并求和

    我想知道是否有一种更快的方法 专用 NumPy 函数来执行 2D NumPy 数组的元素乘法 然后对所有元素求和 我目前使用np sum np multiply A B 其中 A B 是相同维度的 NumPy 数组m x n 您可以使用np
  • gitlab-ci 的缓存虚拟环境

    我使用 Gitlab CI 脚本缓存了 Pip 包 所以这不是问题 现在我还想赶上Conda虚拟环境 因为它减少了设置环境的时间 我缓存了一个虚拟环境 不幸的是 最后需要很长时间才能缓存所有 venv 文件 我尝试仅缓存 CI PROJEC
  • 如何在 python 中没有 csv.reader 迭代器的情况下解析单行 csv 字符串?

    我有一个 CSV 文件 需要重新排列和重新编码 我想跑 line line decode windows 1250 encode utf 8 在由 CSV 读取器解析和分割之前的每一行 或者我想自己迭代行 运行重新编码 并仅使用单行解析表单
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • Tkinter - 浮动窗口 - 调整大小

    灵感来自this https stackoverflow com a 22424245 13629335问题 我想为我的根窗口编写自己的调整大小函数 但我刚刚注意到我的代码显示了一些性能问题 如果你快速调整它的大小 你会发现窗口没有像我希望
  • 迭代 my_dict.keys() 并修改字典中的值是否会使迭代器失效?

    我的例子是这样的 for my key in my dict keys my dict my key mutate 上述代码的行为是否已定义 假设my dict是一本字典并且mutate是一个改变其对象的方法 我担心的是 改变字典中的值可能
  • 当鼠标悬停在上面时,intellisense vscode 不显示参数或文档

    我正在尝试将整个工作流程从 Eclipse 和 Jupyter Notebook 迁移到 VS Code 我安装了 python 扩展 它应该带有 Intellisense 但它只是部分更糟糕 我在输入句点后收到建议 但当将鼠标悬停在其上方
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f

随机推荐

  • 如何添加 JwtBearer 以及 AddMicrosoftIdentityWebAppAuthentication

    我不确定我是否完全理解 Microsoft Identity Web 的更改 但我正在关注一篇文章 微软在这里给出 其中描述了如何在启动时进行更改 services AddAuthentication AzureADDefaults Aut
  • 动态添加角色以授权 ASP.NET 5 中控制器的属性

    我对这篇文章有一个示例问题动态添加角色为控制器授权属性但对于 ASP NET 5 vNext 在 ASP NET 5 中 我无法按照上面的帖子所述覆盖 AuthorizeAttribute 类 那么如何在 ASP NET 5 vNext 中
  • Thrift无法从json反序列化为java对象

    我从以下 thrift 对象生成了一个 java 对象 struct Account 1 required string accountType 2 bool accountActive 我编写了一个java代码 尝试将java对象序列化为
  • 在 Qt Creator 中使用外部 Lib/DLL?

    经过一上午的一系列头痛之后 我决定 在我的第一个 Qt 项目中使用 Qt Creator 可能会比 MSVC 更好 编译时有太多问题 我想知道如何通过 Qt Creator 添加外部工具所需的 dll 和 libs 我找到了这个帖子将外部库
  • 调用数学编辑器

    是否有一个用于调用数学符号 公式的库 不知道该调用什么 它们是专门设计用于添加到可能以 html php 或 javascript 代码调用的网站中的 就像回答 提问页面中文本区域上方的粗体 斜体 链接等按钮一样 抱歉之前 当用户点击它时
  • 有没有办法获取日期时间选择器 (DTP) 中输入字段的句柄?

    The DATETIMEPICKERINFO通过发送获得的结构DTM GETDATETIMEPICKERINFO消息有一个字段hwndEdit这可能就是我正在寻找的 然而 我总是NULL所以我想知道它的实际含义是什么 如果没有 有没有办法获
  • Numpy 随机选择,仅沿一个轴替换

    我需要从数组中采样一堆点对 我希望每对都由两个不同的点组成 但这些点可能在各个对之间重复 例如 如果我的数组是X np array 1 1 2 3 then gt gt gt sample pairs X n 4 1 1 2 3 1 2 1
  • R:在带有多行命令的 system() 中使用 wait=FALSE

    我有一个长时间运行的进程 用 Java 编写 我希望与 system wait FALSE 异步运行 为了能够确定进程何时结束 我想根据中给出的建议创建一个文件如何确定以 system wait FALSE 启动的进程何时结束 问题是 等待
  • 在Python中提取列表元素

    这是我的第一个Python程序 我使用下面的代码来生成给定范围的组合 for k in range 0 items 1 for r in range 0 items 1 if r k gt 0 res x for x in itertool
  • 检查产品是否在愿望清单中

    我正在开发 Magento 主题 我需要构建一个函数来检查产品是否已添加到用户的愿望清单中 Magento 有一个 Mage Wishlist Helper Data 帮助程序类 但我不知道如何构建一个检查是否已在愿望清单中的函数 基本上我
  • OctoberCMS 如何重写用户插件的 onRegister() 函数?

    我在用着十月CMS基于 Laravel 我正在尝试覆盖用户插件 onRegister 功能 之前的答案帮助我扩展了插件 我想将用户名限制为字母数字alpha dash并限制为 50 个字符 原来的函数在帐户 php public funct
  • 这是 Javascript 中有效的 monad 转换器吗?

    为了更好地理解 monad 转换器 我实现了一个 由于 Javascript 是动态类型的 所以我不会模仿类型或数据构造函数 而是仅声明普通的旧 Javascript 对象 这些对象包含相应的静态函数以形成特定的 monad 转换器 基本思
  • PySpark reduceByKey 对多个值的影响

    如果我有一个 K V 对 如下所示 K v1 v2 K v3 v4 我怎样才能总结出我得到的值 k v1 v3 v2 v4 reduceByKey 支持函数 假设 A 是键值对的数组 output A reduceByKey lambda
  • ggplot2 - 饼图 - 以相反顺序的值标签

    我正在尝试使用 ggplot2 将标签与饼图匹配 Code values c 59 4 4 11 26 labels c catA catB catC catD catE pos cumsum values values 2 graph l
  • 使用 Flexjson 更改属性名称

    我使用 FlexJson 进行序列化 唯一的问题是它生成小写的字段名称 而我需要它们以大写开头 class Person String name public String getName return name 序列化时 该字段被序列化为
  • 如何拦截rails的模板渲染

    我有一个为多个网站提供服务的应用程序 与 Stack Exchange 类似 这几个站点的行为非常相似 给定以下视图目录结构 views shared users index html erb app1 users index html e
  • 不同电脑的渲染问题

    所以我正在制作一个塔防游戏 我与他们共享了一个构建 这样我就可以检查一切是否在另一台主机上正常运行 实际发生的情况是 虽然一切在我这边都完美渲染 在我的 mac xcode windows visual studio 2012 上 但在我朋
  • 如何按表中的“数字”位置选择列?

    我试图通过表中的 x 位置来选择列 DBI my example hookup gt prepare qq SELECT This That Condition I also want COLUMN 10 FROM tbl LIMIT co
  • 将数据传递到 Angular 4 中的自定义组件

    我有一个带有选择器的自定义组件 我如何以角度4将数据传递给它以在其模板中显示数据 喜欢
  • 如何按名称导入自定义Python包

    我创建了一个名为 custom module 的文件夹 并且该文件夹内有 init py 其中包含 all Submodule1 Submodule2 从我读到的文档中我应该能够调用import custom module并访问该包 但这并