Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
名称中带有破折号或连字符(-)的Python模块_Python_Module_Import - Fatal编程技术网

名称中带有破折号或连字符(-)的Python模块

名称中带有破折号或连字符(-)的Python模块,python,module,import,Python,Module,Import,我有一个名为foo-bar.py的python模块 更改模块名称是我希望避免的事情,因为模块是共享的,我必须查找使用它的所有位置,以便我的特殊情况能够正常工作 是否有方法加载其名称包含通常禁止的“-”的模块 (我知道这不是一个最佳实践。但在这种情况下,我不希望重新设计和测试更大的应用程序集。而且我认为我的公司主管不会同意我花时间实施这样的更改。)你可以使用。例如: foobar = __import__("foo-bar") 但是您确实应该重命名模块。通过这种方式,您可以避免混淆模块的文件名与

我有一个名为foo-bar.py的python模块

更改模块名称是我希望避免的事情,因为模块是共享的,我必须查找使用它的所有位置,以便我的特殊情况能够正常工作

是否有方法加载其名称包含通常禁止的“-”的模块

(我知道这不是一个最佳实践。但在这种情况下,我不希望重新设计和测试更大的应用程序集。而且我认为我的公司主管不会同意我花时间实施这样的更改。)

你可以使用。例如:

foobar = __import__("foo-bar")

但是您确实应该重命名模块。通过这种方式,您可以避免混淆模块的文件名与程序中使用的标识符不同。

我知道这个问题已经得到了提问者满意的回答,但下面是另一个答案,我相信它在使用
\uuu import\uu()
时有一定的优点

根据文件:

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

Python2.7
+only

尝试使用下划线而不是连字符

导入pymysql\u utils


尽管import-pymysql-utils是pip使用的模块名称,但对我来说还是很有用的

这个答案尤其重要:agf简短回答:它不全是我的代码。S.Lott其他用户都是商业应用程序。这就是我如何知道这是可能的。这回答了你的问题吗?谢谢我明白,只要可行,就应该遵守惯例。我将在部门代码审查期间提出这个具体问题。我正在寻找如何做到这一点,您的答案比以前的答案更适合我的情况。如果你看到一个与现有答案截然不同的答案,将其添加为一个新答案,这样像我这样的人就可以在一个地方找到所有相关信息,这总是好的。
"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."