Python 导入:导入不带 .py 扩展名的模块?

2024-04-11

在我开发的Python系统中,我们通常有这种模块结构。

mymodule/
mymodule/mymodule/feature.py
mymodule/test/feature.py

这使得我们的小测试框架可以轻松导入 test/feature.py 并运行单元测试。然而,我们现在需要一些 shell 脚本(用 Python 编写):

mymodule/
mymodule/scripts/yetanotherfeature.py
mymodule/test/yetanotherfeature.py

Yetanotherfeature.py 由 Debian 软件包模块安装到 /usr/bin 中。但我们显然不想要 .py 扩展名。因此,为了使测试框架仍然能够导入模块,我必须执行此符号链接操作:

mymodule/
mymodule/scripts/yetanotherfeature
mymodule/scripts/yetanotherfeature.py @ -> mymodule/scripts/yetanotherfeature
mymodule/test/yetanotherfeature.py

是否可以在Python中按文件名导入模块,或者你能为此想到一个更优雅的解决方案吗?


The 小鬼模块 http://docs.python.org/library/imp.html用于此:

daniel@purplehaze:/tmp/test$ cat mymodule
print "woho!"
daniel@purplehaze:/tmp/test$ cat test.py 
import imp
imp.load_source("apanapansson", "mymodule")
daniel@purplehaze:/tmp/test$ python test.py
woho!
daniel@purplehaze:/tmp/test$ 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 导入:导入不带 .py 扩展名的模块? 的相关文章

  • Mac OS 上的诗歌安装失败,显示“should_use_symlinks”

    我正在尝试使用以下命令安装诗歌 curl sSL https install python poetry org python3 但它失败了 但有以下例外 例外 此版本的 python 无法在不使用符号链接的情况下创建 venvs 下面是详
  • 如何在Python中流式传输和操作大数据文件

    我有一个相对较大 1 GB 的文本文件 我想通过跨类别求和来减小其大小 Geography AgeGroup Gender Race Count County1 1 M 1 12 County1 2 M 1 3 County1 2 M 2
  • python 中的并行处理

    在 python 2 7 中进行并行处理的简单代码是什么 我在网上找到的所有示例都很复杂 并且包含不必要的代码 我该如何做一个简单的强力整数分解程序 在每个核心 4 上分解 1 个整数 我真正的程序可能只需要2个核心 并且需要共享信息 我知
  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • 使用 python 中的公式函数使从 Excel 中提取的值的百分比相等

    import xlrd numpy excel Users Bob Desktop wb1 xlrd open workbook excel assignment3 xlsx sh1 wb1 sheet by index 0 colA co
  • 补丁 - 为什么相对补丁目标名称不起作用?

    我已经从模块导入了一个类 但是当我尝试修补类名而不使用模块作为前缀时 出现类型错误 TypeError Need a valid target to patch You supplied MyClass 例如 以下代码给出了上述错误 imp
  • Pandas:GroupBy 到 DataFrame

    参考这个关于 groupby 到 dataframe 的非常流行的问题 https stackoverflow com questions 10373660 converting a pandas groupby object to dat
  • Kivy - 有所有颜色名称的列表吗?

    在 Kivy 中 小部件 color属性允许输入其值作为字符串颜色名称 也 例如在 kv file Label color red 是否有所有可能的颜色名称的列表 就在这里 来自Kivy 的文档 https kivy org doc sta
  • 工作日重新订购 Pandas 系列

    使用 Pandas 我提取了一个 CSV 文件 然后创建了一系列数据来找出一周中哪几天崩溃最多 crashes by day bc DAY OF WEEK value counts 然后我将其绘制出来 但当然它按照与该系列相同的排名顺序绘制
  • 没有名为 StringIO 的模块

    我有Python 3 6 我想从另一个名为 run py 的 python 文件执行名为 operation py 的 python 文件 In operation py I do from cStringIO import StringI
  • 在 Django OAuth Toolkit 中安全创建新应用程序

    如何将 IsAdminUser 权限添加到 Django OAuth Toolkit 中的 o applications 视图 REST FRAMEWORK DEFAULT PERMISSION CLASSES rest framework
  • Emacs 24.x 上的 IPython 支持

    我对 IPython 与 Emacs 的集成感到困惑 从 Emacs 24 开始 Emacs 附带了自己的python el 该文件是否支持 IPython 还是仅支持 Python 另外 维基百科 http emacswiki org e
  • 结构差异 sudo() run('sudo 命令')

    我想知道函数之间有什么区别sudo 和函数run sudo u user smth 文档上有 sudo 在所有运行方式上都是相同的 除了它总是换行 调用 sudo 程序中的给定命令以提供超级用户 特权 但有几次 sudo cmd 提示我输入
  • Gspread如何复制sheet

    在 Stackoverflow 上进行谷歌搜索和搜索后 我想我找不到有关如何复制现有工作表 现有模板工作表 并将其保存到另一个工作表中的指南 根据文档 有重复表 https gspread readthedocs io en latest
  • Matplotlib 中 x 轴标签的频率和旋转

    我在下面编写了一个简单的脚本来使用 matplotlib 生成图形 我想将 x tick 频率从每月增加到每周并轮换标签 我不知道从哪里开始 x 轴频率 我的旋转线产生错误 TypeError set xticks got an unexp
  • 用 python 编写的数学语法检查器

    我需要的只是使用 python 检查字符串是否是有效的数学表达式 为了简单起见 假设我只需要 运算符 也作为一元 带有数字和嵌套括号 为了完整性 我还添加了简单的变量名称 所以我可以这样测试 test 3 2 1 valid test 3
  • ANTLR 获取并拆分词法分析器内容

    首先 对我的英语感到抱歉 我还在学习 我为我的框架编写 Python 模块 用于解析 CSS 文件 我尝试了 regex ply python 词法分析器和解析器 但我发现自己在 ANTLR 中 第一次尝试 我需要解析 CSS 文件中的注释
  • 返回表示每组内最大值的索引的一系列数字位置

    考虑一下这个系列 np random seed 3 1415 s pd Series np random rand 100 pd MultiIndex from product list ABDCE list abcde One Two T
  • 在 keras 中保存和加载权重

    我试图从我训练过的模型中保存和加载权重 我用来保存模型的代码是 TensorBoard log dir output model fit generator image a b gen batch size steps per epoch
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho

随机推荐

  • 隐式声明的特殊成员函数

    基本上隐式声明了四个特殊函数 默认构造函数 默认析构函数 默认赋值运算符 默认成员复制运算符 问题 如果其中任何一个是由用户定义的 例如 析构函数 其余三个函数将不会被声明 这是正确的吗 或者 它只适用于默认构造函数 而复制构造函数 如果你
  • 寻找一个已经实现二叉树的java库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有可以使用的具有二叉树的java库 我并不期待测试和实施我自己的 Java 标准 API 只包含普遍
  • (使用 -source 7 或更高版本在交换机中启用字符串)错误;Netbeans 7.1.2

    我使用的是 JDK 7 和 Netbeans IDE 7 1 2 正在经历在 switch 中使用字符串 http docs oracle com javase tutorial java nutsandbolts switch html
  • 安装 Firebase for React 时出现 Grpc 错误

    我已经尝试修复这个错误两天了 我所做的就是得到错误 创建反应应用程序名称 cd 应用程序名称 npm install firebase save 这是未能正确安装的部分 这些是我尝试过的主要修复 安装最新版本的Python 3并将其添加到W
  • 从 ES 6 中的对象获取一些属性的单行代码

    如何在 ES6 中以最紧凑的方式编写一个只需要几个属性的函数 我想出了使用解构 简化对象文字的解决方案 但我不喜欢代码中重复字段列表 有没有更苗条的解决方案 v gt let id title v return id title 这是更精简
  • 在 d3.js 中绘制已投影的 geoJSON 地图

    使用 d3 js v3 时 我在使用 geoJSON 数据绘制地图时遇到问题 代码和生成的地图显示在 http bl ocks org 73833ec90a8a77b0e29f http bl ocks org 73833ec90a8a77
  • 如何从主查询中选择计数到子查询中

    我想将主查询中选择的记录数获取到子查询中 我当前尝试执行的查询是 SELECT cat id category name seo name SELECT count category name FROM ccs coupons WHERE
  • 对 stdin、stdout 和 stderr 感到困惑吗?

    我对这三个文件的用途感到相当困惑 如果我的理解是正确的话stdin是程序写入其请求以在进程中运行任务的文件 stdout是内核将其输出写入其中的文件 并且请求它的进程从中访问信息 并且stderr是输入所有异常的文件 在打开这些文件以检查这
  • x86 部分寄存器使用

    如果我在 8 位寄存器中保存一个值 比如说 10DH然后是 8 位寄存器中的另一个值 15DL 这会起作用吗 或者它们会互相覆盖吗 因为它们都是 32 位的EDX登记 mov 10 DH mov 15 DL cmp DL DH jle do
  • jQuery $.ajax 无提示失败,没有错误消息,服务器响应 200 OK

    我正要认真思考这个问题 我使用非常简单的 jQuery ajax 调用从数据库获取值 并用这些值填充一些选择元素 所有这些都以 JSON 形式返回 它在大多数浏览器上对我来说都是无缝工作的 但是客户报告说他们和他们的客户都没有看到结果 我一
  • Android RemoteServiceException:从包发布的错误通知无法缓存 contentViews

    我有一个 Android 应用程序由于未处理的异常而崩溃 但仅限于一台特定设备 运行 Nougat 我相信他们是我的测试人员中唯一一位运行牛轧糖的人 这是例外 Java Lang RuntimeException 从包 我的 包名称 无法缓
  • C/C++ 中 pow() 函数的实现是否因平台或编译器而异?

    花了一天时间调试内置的pow 函数的输出 我的编译器和在线编译器的输出不同 那是一个很长的故事 我写了以下内容最小 完整且可验证的示例 https stackoverflow com help mcve重现情况 Code include
  • 在 angularjs 中创建容器指令

    因此 我尝试创建一个指令来布局列中的项目集合 在 plunker 中 我有一个极其简化的版本 仅使用单个 ul 但这并不重要 我希望该指令被称为像
  • 使用pyspark获取列的数据类型

    我们正在从 MongoDB 读取数据Collection Collection列有两个不同的值 例如 bson Int64 int int float 我正在尝试使用 pyspark 获取数据类型 我的问题是某些列具有不同的数据类型 Ass
  • Nginx:如何仅将主域与 server_name 匹配

    我的目标是重定向example com into www example com不重定向any子域到www 这就是我所拥有的 server listen 443 server name example com return 301 http
  • 使用 Phonegap 安装 Cordova 插件 - 无 Cordova.plist

    我正在尝试为我的应用程序安装一个插件 运行良好 该插件使用 Cordova 和 PhoneGap 框架在 XCode 中编译 根据插件的说明 我应该添加一个密钥Cordova plist文件 但我在我的层次结构中找不到它 这是我的 XCod
  • 如何使用 pincode 作为输入查找纬度和经度列表

    有什么方法可以使用 zip pincode 找到纬度和经度列表吗 Input 560103 Output 12 123456 72 123456 12 123654 72 366666 12 123456 72 123456 on goog
  • 用于将 DataTable 替换为集合的最佳 C# 泛型类?

    我正在尝试将遗留的 C NET 1 1 应用程序带入现代时代 我们使用 DataTable 来收集可能是业务对象的内容 鉴于大多数代码认为它正在与 DataRow 的接口进行通信 那么哪种通用集合可以实现最不痛苦的转换 如果我正确地阅读了您
  • std::stack 是否公开迭代器?

    是否std stack在 C STL 中公开底层容器的任何迭代器 还是应该直接使用该容器 根据堆栈的定义 堆栈没有迭代器 如果您需要带有迭代器的堆栈 则需要自己在其他容器 std list std vector 等 之上实现它 堆栈文档在这
  • Python 导入:导入不带 .py 扩展名的模块?

    在我开发的Python系统中 我们通常有这种模块结构 mymodule mymodule mymodule feature py mymodule test feature py 这使得我们的小测试框架可以轻松导入 test feature