Python模块的名称中带有短划线或连字符( – )

我有一个名为foo-bar.py的破折号的现有python模块

改变模块名称是我宁愿避免的,因为模块是共享的,我将不得不追逐所有使用它的地方,以便我的特殊情况将起作用。

有没有办法加载名称中包含通常被禁止的' – '的模块?

(我明白这不是最佳做法,但是对于这种情况,我不想重新devise和testing更多的应用程序,我也不认为我的公司主人会赞成我花时间去实施这样的改变。)

2 Solutions collect form web for “Python模块的名称中带有短划线或连字符( – )”

你可以使用__import__()来做到这__import__() 。 例如:

 foobar = __import__("foo-bar") 

但是你真的应该重新命名模块。 这样,您可以避免模块的文件名与程序中使用的标识符不同的混淆。

我知道这个问题已经回答了提问者的满意,但是这里有另外一个答案,我认为上面有一些优点使用__import__()

 import importlib mod = importlib.import_module("path.to.my-module") # mod.yourmethod() 

根据文件:

 "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." 

只有Python 2.7 +

  • 如何在Python中打印一个列表“很好”
  • Django Rest框架中的用户authentication+ Angular.js Web应用程序
  • 是否有可能在Python lambdaexpression式中有多个语句?
  • 如何将一个pandas DataFrame列和行的子集转换成一个numpy数组?
  • Pythondebugging器入门,pdb
  • python字典和默认值
  • 使用pip列出软件包的依赖关系
  • 无法在OSX 10.11 El Capitan上安装virtualenvwrapper
  • 如何使用Python中的“open”打开多个文件?
  • 如何在django shell中重新加载模块?
  • 如何向初学者解释int()函数