当前位置:  开发笔记 > 编程语言 > 正文

Python导入:导入没有.py扩展名的模块?

如何解决《Python导入:导入没有.py扩展名的模块?》经验,为你挑选了1个好方法。

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



1> dsvensson..:

该小鬼模块用于此:

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$ 


这将创建一个名为"mymodulec"的文件.它应该是.pyc,但由于原始文件没有以.py结尾,所以它只是在最后添加ac.这看起来很怪异.我可以不这样做吗?
推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有