101得票6回答
在Python中导入模块 - 最佳实践

我是新手,想通过学习Python来扩展我在R中学到的技能。 在R中,我倾向于加载一堆库,有时会导致函数名称冲突。 在Python中的最佳实践是什么。我看到了一些具体的变化,但我没有看出它们之间的区别。 import pandas,from pandas import *和from pand...

99得票4回答
为什么Python模块有时无法导入其子模块?

我今天注意到一些奇怪的事情,希望能够解释一下。我甚至不确定如何用问题来表达这个问题,因此谷歌是行不通的。出于某种奇怪的原因,logging模块无法访问logging.handlers模块。如果你不信,请自行尝试:>>> import logging >>> ...

97得票12回答
如何测试或模拟“if __name__ == '__main__'”的内容

假设我有一个模块,其中包含以下内容:def main(): pass if __name__ == "__main__": main() 我想为下半部分编写单元测试(希望能达到100%的覆盖率)。我发现了内置模块runpy,它执行导入/__name__设置机制,但我无法弄清楚...

97得票9回答
在Jupyter笔记本中导入另一个目录中的py文件

我的问题与这个有关。我在Jupyter Notebook中使用Python 3.6。我的项目目录是/user/project。在这个目录下,我正在构建许多模型,每个模型都有自己的文件夹。但是,有一个共同的functions.py文件,里面有一些函数,我想在所有模型中都使用它们。因此,我想把fu...

95得票7回答
Python中的循环导入依赖问题

假设我有以下目录结构:a\ __init__.py b\ __init__.py c\ __init__.py c_file.py d\ __init__.p...

94得票3回答
为什么要使用sys.path.append(path)而不是sys.path.insert(1, path)?

编辑:根据Ulf Rompe的评论,重要的是使用“1”而不是“0”,否则你将会破坏sys.path。 我已经写了一段时间的Python(超过一年),我总是困惑于为什么人们推荐使用sys.path.append()而不是sys.path.insert()。 让我来举个例子。 假设我正在开发一...

94得票6回答
导入顺序编码规范

PEP8 建议: 导入应按以下顺序分组: 标准库导入 相关的第三方库导入 本地应用/库特定导入 每个导入分组之间应该加上一个空白行。 是否有一种方式可以使用静态代码分析工具(如pylint,pyflakes,pychecker,pep8)检查...

94得票4回答
从脚本相同的位置(或附近)导入库会引发“AttributeError:module has no attribute”或ImportError或NameError。

我有一个名为requests.py的脚本,需要使用第三方requests包。但是脚本无法导入该包,或者无法访问其功能。 为什么会出现这种情况,我该如何解决? 尝试普通导入并使用功能会导致AttributeError错误: import requests res = requests.g...

84得票3回答
为什么Python的__import__需要fromlist参数?

在Python中,如果您想以程序化的方式导入一个模块,可以这样做:module = __import__('module_name') 如果你想导入一个子模块,你会认为这是一个简单的事情:module = __import__('module_name.submodule') 当然,这样做是行...

81得票6回答
在Python中导入包

我可能漏掉了一些显而易见的东西,但无论如何: 当你在Python中导入一个包(例如os),你可以立即使用其中的任何子模块/子包。例如,下面的代码就可以工作:>>> import os >>> os.path.abspath(...) 然而,我有自己的包,其结...