在我开发的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中通过文件名导入模块,或者您能想到更优雅的解决方案吗?

解决方法:

您最有可能使用import hooks使用一些tricker,但我不推荐它.另一方面,我也可能会以相反的方式执行此操作,将.py脚本放在某处,并为.py文件创建“.py”无符号链接.所以你的库可以在任何地方,你可以从内部运行测试,通过导入它normall(因为它有py扩展名),然后/usr/bin/yetanotherfeature指向它,所以你可以在没有py的情况下运行它.

编辑:没关系这个(至少是钩子部分),导入imp解决方案看起来对我很好:)

标签:python,debian

来源: https://codeday.me/bug/20190717/1485512.html

python模块文件的扩展名不一定是py_Python导入:导入没有.py扩展名的模块?相关推荐

  1. python文件的打开模式有几种_以下选项中,不是Python打开文件模式的是( )_学小易找答案...

    [单选题]下面代码的输出结果是( ) x=12.34+0j print(type(x)) [单选题]在本实验中为什么不使用草酸钠,而使用草酸来制备草酸亚铁? [单选题]减压抽滤时,下述操作不正确的是 ...

  2. 详解AES对称加密(python实现文件加密)

    一.对称加密 对称加密:需要对加密和解密使用相同密钥的加密算法. 优点:速度快,适合加密大量数据时使用. 缺点:不利于传送密钥.(后面文章在介绍非对称加密传输对称加密的密钥,此处应用是文件加密,密钥只 ...

  3. Python对文件进行批量重命名

    不管是什么开发语言,用代码操作的最大优势就是可以灵活调整.可批量处理 对于要处理的文件,几千几万的量也是一个回车的事,当然前提是代码不能出BUG 有时候我们下载的一切工具要么收费,要么有各种各样的限制 ...

  4. python中模块文件的扩展名不一定是py_python模块和python包有什么区别?

    python模块和python包有什么区别? 另请参见:"package"和"module"(其他语言)之间的区别是什么? 我可能错了,但对我来说:模块基本上是 ...

  5. python模块文件的扩展名不一定是py_Python文件扩展名.py?.pyc?.pyd?

    与Python相关的文件扩展名实际不止.py..pyc..pyd这三种,但这三种是最常见的,比如以Houdini 16.5.268的Python模块包路径搜索一下有哪些扩展名 与Python相关的只有 ...

  6. python中模块文件的扩展名不一定是py_跟老齐学Python之Import 模块

    认识模块 对于模块,在前面的一些举例中,已经涉及到了,比如曾经有过:import random (获取随机数模块).为了能够对模块有一个清晰的了解,首先要看看什么模块,这里选取官方文档中对它的定义: ...

  7. python中模块文件的扩展名一定是py_Python 模块(Module)

    1.什么是模块(Module)? 考虑模块与代码库相同. 包含要包含在应用程序中的一组功能的文件. 2.定义模块(Module) 要创建模块,只需将所需的代码保存在文件扩展名为.py的文件中: 例如: ...

  8. python程序文件扩展名有_python程序文件的扩展名称是什么

    python程序文件的扩展名称是什么 python程序的扩展名有.py..pyc..pyo和.pyd..py是源文件,.pyc是源文件编译后的文件,.pyo是源文件优化编译后的文件,.pyd是其他语言 ...

  9. python源程序文件的扩展名_python程序文件扩展名知识点详解

    python程序文件的扩展名称是什么 python程序的扩展名有.py..pyc..pyo和.pyd..py是源文件,.pyc是源文件编译后的文件,.pyo是源文件优化编译后的文件,.pyd是其他语言 ...

最新文章

  1. JSP/Servlet 工作原理
  2. 初试牛客网PAT练习之数素数
  3. html select 可输入 可编辑
  4. LWUIT显示中文问题
  5. SAP Fiori Elements drop down list debug
  6. block size在equipment download中的用法
  7. 臭名昭著的sun.misc.Unsafe解释
  8. 等待队列设备[置顶] Linux设备驱动,等待队列
  9. c语言用三目运算符从小到大排列,错题集
  10. java 定时器 数据库_java实现定时器,定时修改数据库代码
  11. android文件读取文件内容,android创建txt文件,读取txt文件内容
  12. 区块链开发入门教程【加精】
  13. python 打开网页并截图_python实现自动网页截图并裁剪图片
  14. 神经网络和深度学习二者之间的关系
  15. Intent intent =new Intent(getActivity(),DeliverListActivity.class,Cannot resolve method'getActivity'
  16. 表扩展字段2种实施方案研究
  17. php用户登录界面代码有背景,大男孩教你怎么自定义WordPress用户登录界面背景图片? – 男孩资源网...
  18. 知网和万方下载论文收费模式,被这家网站打破,令人拍手叫好
  19. 两两独立为什么不能推出相互独立
  20. 将电脑新建文本文档txt的默认编码从ANSI改为utf-8

热门文章

  1. Java线程的同步 - synchronized
  2. esxi5.1 添加vSwitch,转VM network to new vSwitch
  3. heX:用HTML5和Node.JS开发桌面应用
  4. HAProxy+Hive构建高可用数据挖掘集群
  5. 做手好菜,骗个好女孩做女朋友(一)
  6. Linux 命令(67)—— time 命令
  7. Shell 条件表达式的正则匹配
  8. oracle group by
  9. CentOS中一些基本的操作记录
  10. python magic_method