Ski*_*man 79 python import module
我有一个现有的python模块,其名称为foo-bar.py
更改模块名称是我希望避免的,因为模块是共享的,我将不得不追查它使用的所有位置,以便我的特殊情况可以工作.
有没有办法加载名称中包含通常被禁止的' - '的模块?
(我确实理解这不是最佳做法.但对于这种情况,我宁愿不重新设计和测试更大的应用程序.我也不认为我的公司主人会赞成我花时间实施这样的改变.)
nan*_*dhp 89
你可以使用__import__().例如:
foobar = __import__("foo-bar")
Run Code Online (Sandbox Code Playgroud)
但你真的应该重命名模块.这样,您可以避免模块的文件名与程序中使用的标识符不同的混淆.
Nuc*_*eon 50
我知道这个问题已经得到了提问者的满意答复,但这是另一个我认为具有上述优点的答案__import__().
import importlib
mod = importlib.import_module("path.to.my-module")
# mod.yourmethod()
Run Code Online (Sandbox Code Playgroud)
根据文件:
"This provides an implementation of import which is portable to any
Python interpreter. This also provides an implementation which is
easier to comprehend than one implemented in a programming language
other than Python."
Run Code Online (Sandbox Code Playgroud)
Python 2.7 +仅