python-import相关内容

导入路径 - 正确的方法?

我知道有很多类似或相同的问题,但我仍然无法理解/找到适合我使用模块的正确方法.Python 是我最喜欢的语言,除了使用导入之外,我喜欢其中的所有内容:递归导入(当您尝试引用尚不存在的名称时)、导入路径等. 所以,我有这样的项目结构: my_project/包1/__init__.py模块1模块2包2/__init__.py模块1模块2 Package1 可用作独立单元,但也应由 pack ..
发布时间:2022-01-02 12:51:00 Python

为什么使用 sys.path.append(path) 而不是 sys.path.insert(1, path)?

编辑:根据 Ulf Rompe 的评论,使用“1"而不是“0"很重要,否则会破坏 sys.path. 我使用 python 已经有一段时间了(一年多了),我总是很困惑为什么人们推荐你使用 sys.path.append() 而不是 sys.path.insert().让我演示一下. 假设我正在开发一个名为 PyWorkbooks 的模块(安装在我的计算机上),但我同时在开发一个包含 P ..
发布时间:2022-01-02 12:43:34 Python

如何覆盖导入的 Python 模块中的常量?

在我的应用程序中,我使用包 example 中的模块,称为 examplemod. 我的应用: from example import examplemod示例mod.do_stuff() 它像这样在 example 中导入另一个模块. examplemod.py: 来自示例导入配置# 使用配置# 然后做事 config 使用常量. config.py: CONSTAN ..
发布时间:2021-12-29 14:14:07 Python

导入python模块而不运行它

我只需要从另一个运行其中内容的 python 文件中导入一个函数,但是当我导入该函数时,它会运行整个代码,而不是只导入我想要的函数.有没有办法只从另一个 .py 文件中导入一个函数而不运行整个代码? 解决方案 在 another.py 中,将不想运行的代码移到只在脚本运行时运行的块中显式调用运行而不仅仅是导入 def my_func(x):返回 x如果 __name__ == '__ma ..
发布时间:2021-12-29 13:50:26 Python

导入模块:__main__ 与作为模块导入

作为序言,我想我可能已经想出了如何让这段代码工作(基于 导入后更改模块变量),但我的问题实际上是关于为什么会发生以下行为,以便我了解将来不应该做什么. 我有三个文件.第一个是 mod1.py: # mod1.py导入 mod2var1A = 无def func1A():全局变量 1var1 = 'A'mod2.func2()def func1B():全局变量 1打印变量 1如果 __nam ..
发布时间:2021-12-29 13:43:03 Python

列出属于 python 包的所有模块?

有没有一种直接的方法可以找到属于 python 包的所有模块?我找到了这个旧讨论,其中并不是真正的决定性的,但在我推出基于 os.listdir() 的我自己的解决方案之前,我很想有一个明确的答案. 解决方案 是的,你想要基于 pkgutil 或类似的东西——这样你就可以一视同仁地对待所有包,无论它们是否在鸡蛋中或 zips 左右(其中 os.listdir 无济于事). import ..
发布时间:2021-12-29 13:42:24 Python

如何导入上面目录中的 Python 类?

我想从位于当前目录上方目录中的文件中的类继承. 是否可以相对导入该文件? 解决方案 from ..subpkg2 import mod 根据 Python 文档:在包层次结构中,使用两个点,作为 import 语句 doc 说: 在指定要导入的模块时,您不必指定模块的绝对名称.当一个模块或包包含在另一个包中时,可以在同一个顶级包中进行相对导入,而无需提及包名称.通过在fr ..
发布时间:2021-12-29 13:41:22 Python

为什么导入时 Python 会运行我的模块,我该如何停止它?

我正在构建一个 Python 程序,它可以以两种方式之一运行:第一种是调用“python main.py",它以友好的方式提示用户输入,然后通过运行用户输入该程序.另一种方法是调用“python batch.py​​ -file-",它将传递所有友好的输入收集并一次性通过程序运行整个文件的输入. 问题是,当我运行“batch.py​​"时,它会从“main.py"中导入一些变量/方法/等,当 ..
发布时间:2021-12-29 13:39:04 Python

Python:如何从不同目录访问文件

我有以下项目结构 示例项目电脑Python例子来源实用程序配置管理器配置文件常量.cfg 如何从 ConfigManager.py 访问 constants.cfg. 我有一个限制 我无法给出 constants.cfg 的完整路径(绝对路径),因为如果我在不同的 PC 上运行它应该无需任何修改即可工作 此外,如果我代表以下内容,我可以访问该文件.但我不想每次都给回斜线 f ..
发布时间:2021-12-25 19:53:05 Python

在 Python 包中导入 vendored 依赖项而不修改 sys.path 或 3rd 方包

总结 我正在为 Anki(一个开源抽认卡程序)开发一系列附加组件.Anki 附加组件作为 Python 包提供,基本文件夹结构如下所示: anki_addons/插件名称_1/__init__.py插件名称_2/__init__.py anki_addons 由基础应用附加到 sys.path,然后使用 import 导入每个 add_on. 我一直试图解决的问题是找到一种可靠的方法来 ..
发布时间:2021-12-25 19:45:26 Python

防止 Python 缓存导入的模块

在 Python 中使用 IPython 开发大型项目(拆分为多个文件和文件夹)时,我遇到了缓存导入模块的麻烦. 问题是指令import module 只读取该模块一次,即使该模块已更改!因此,每次我更改包中的某些内容时,我都必须退出并重新启动 IPython.痛苦. 有什么方法可以正确强制重新加载某些模块?或者,更好的是,以某种方式阻止 Python 缓存它们? 我尝试了几种方 ..
发布时间:2021-12-25 19:26:51 Python

`from ... import` 与 `import .`

我想知道代码片段之间是否有任何区别 来自 urllib 导入请求 和片段 import urllib.request 或者如果它们可以互换.如果它们是可互换的,那么这就是“标准"/“首选".语法(如果有的话)? 解决方案 这取决于您在引用时希望如何访问导入. 来自 urllib 导入请求# 直接访问请求.我的 = 请求()导入 urllib.request# 用作 urllib. ..
发布时间:2021-12-25 19:21:33 Python

如何测试或模拟“if __name__ == '__main__'"内容

假设我有一个包含以下内容的模块: def main():经过如果 __name__ == "__main__":主要的() 我想为下半部分编写一个单元测试(我想达到 100% 的覆盖率).我发现了执行 import/__name__ 设置机制的 runpy 内置模块,但我不知道如何模拟或以其他方式检查 main() 函数被调用. 这是我迄今为止尝试过的: 导入runpy进口模拟@moc ..
发布时间:2021-12-09 19:26:58 Python

为什么使用 from __future__ import print_function 会破坏 Python2 风格的打印?

我是 Python 编程的新手,我试图用分隔符和结尾打印出来,但它仍然给我一个语法错误. 我使用的是 python 2.7. 这是我的代码: from __future__ import print_function导入系统、操作系统、时间对于范围内的 x(0,10):打印 x, sep='', end=''时间.sleep(1) 这里是错误: $ python2 xy.py文件 ..
发布时间:2021-12-08 12:53:34 Python

在 __init__.py 和 'import as' 语句中导入

我遇到了在 __init__.py 中导入并在包的模块中使用 import as 和绝对导入的问题. 我的项目有一个子包,在它的 __init__.py 中我“提升"了使用 from import as 语句从模块到子包级别的类之一.该模块使用绝对导入从该子包中导入其他模块.我收到此错误 AttributeError: 'module' object has no attribute 'su ..
发布时间:2021-12-02 17:05:26 Python