【问题标题】:How to share libraries across many files python如何跨多个文件共享库python
【发布时间】:2019-03-01 15:30:35
【问题描述】:

我检查了几个类似的问题,但找不到令人满意的答案。如果您想在许多不同的文件中重用库,什么是好的做法。这就是我现在所做的:

# LIB.py
import sys
import platform
import socket

import mypyfile1
import mypyfile2


# RANDOM_PYFILE.py
import LIB

LIB.library.some_function()

这是解决这个问题的正确方法还是有更好的方法?

【问题讨论】:

  • 不,将所有公共库转储到 1 个模块中然后导入它不是一个好主意。我不知道这解决了什么问题,但是现在每个项目都有一个依赖项,如果您尝试在另一台计算机/实例等上进行 tun,您现在必须包含该依赖项
  • 其实恰恰相反,一般的做法是拥有一个针对每个项目的虚拟环境。库一直在弃用方法并添加新方法,因此您最终会得到一个无法支持两个或多个项目的集中导入,因为 API 不匹配
  • 这听起来像是一个很好的方式来让你自己进入一个你不得不更新你的 API/模块的情况。我喜欢人们更新他们的东西的声音。
  • 感谢所有回答!

标签: python python-3.x shared-libraries python-module


【解决方案1】:

Python 不像 JavaScript 那样多次导入脚本会导致多次执行。

也不像 C 或 CSS 那样多次导入/包含一个文件会导致该文件在您的代码中被多次定义。 Python 足够聪明,只需要在需要时导入一次。

因此,继续在所有需要它的文件中导入所需的所有内容,次数不限。 Python 只会在进程中加载​​一次。

事实上,这造成了 Python 中文件重新加载的特定问题,其中简单地重新导入文件不会更新您的代码。 Python 在reload 函数中有一个解决方案。但你显然不需要那个。

所以别担心。根据需要多次导入。这 Python 中的最佳实践。

【讨论】:

  • 这可以解释为什么这个问题没有被更多地讨论,因为似乎最简单的解决方案是最好的。
  • 最简单的解决方案就是最好的解决方案是蟒蛇哲学的核心原则:-)。
猜你喜欢
  • 1970-01-01
  • 2014-04-10
  • 2018-07-29
  • 2022-08-02
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多