- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否保留 __pycache__
文件夹和 .pyc
内置容器中的文件是好还是坏的做法。
一方面,您希望最小化容器的大小,但另一方面,您也不希望减慢容器的执行速度。
考虑到 python 解释器是静态的,这些文件也可以被认为是静态的。
有没有人做过一些性能测试并得出结论?
最佳答案
就我个人而言,我不使用 __pycache__
/.pyc
如果可能的话,容器中的文件。更具体地说,我尝试构建和运行我的容器,以便它们永远不会生成 .pyc
文件(设置环境变量 PYTHONDONTWRITEBYTECODE=1
并将 --no-compile --no-cache-dir
显式地或通过 pip
或等效的环境变量传递给所有 pip.conf
调用),无论是在构建期间还是在运行时。
缓存字节码的优势在于启动时间,而不是执行速度; import
需要更长的时间,但实际执行速度同样快(字节码仍在内存中,只是不在磁盘上)。但在容器的情况下,使容器更大意味着缓存和启动需要更长的时间,因此您正在浪费磁盘空间,并且 Python 启动时间的任何增加通常会被首先拉取和启动容器的延迟所抵消。在运行时写出字节码是没有意义的;当容器关闭时它会丢失,因此它会增加启动费用而没有任何好处。
拥有 .pyc
Python 本身的基本安装文件还不错(尽管如评论中所述,官方 Dockerfile
已删除它们);由于许多容器依赖于它们,基础 Python 镜像已经被缓存的可能性很高,并且许多预构建的 Python 镜像已经拥有它们(因此事后删除它们无济于事),并且它确实减少了启动时间一些用于在基于它们构建的容器中运行的程序。但是对于每个容器的第三方安装,您只会变得臃肿而没有任何补偿性好处。
关于python - __pycache__ 文件夹应该包含在生产容器中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64808915/
我想知道是否保留 __pycache__文件夹和 .pyc内置容器中的文件是好还是坏的做法。 一方面,您希望最小化容器的大小,但另一方面,您也不希望减慢容器的执行速度。 考虑到 python 解释器是
我有一个文件夹/foo。此文件夹作为 package_data 包含在我的 Python 包的 setup.py 中。当某人 pip install 是我的包时,他们可以将 /foo 下载到他们的计算
这个问题已经有答案了: Is it possible to decompile a compiled .pyc file into a .py file? (9 个回答) 已关闭 5 年前。 我犯了一
Pytest 警告在第一次和后续运行之间是不同的。 janbet@ub/home/janbet $ cat test_x.py def test_1(): a = '\d' janbet@ub
我想问一下是否有另一种方法可以在服务器中禁用 __pycache__ 的创建。 我的问题是即使我已经将环境变量设置为 PYTHONDONTWRITEBYTECODE=1 它也会继续生成 我想禁用 __
Django 1.6 Ubuntu 12.04 Python 3.2.3 意外删除了 Django 应用的 __pycache__ 文件夹及其 __init__.py 文件,导致 Django 崩溃。
我想使用 Python 编译(.pyc 或 __pycache__)运行 Pythonic 项目。为了在 Python2 中做到这一点,我没有任何问题。 这是 Python2 项目中的一个简化示例:
从 python3 项目中清除所有 __pycache__ 文件夹和 .pyc/.pyo 文件的最佳方法是什么。我看到多个用户建议使用 Debian 捆绑的 pyclean 脚本,但这不会删除文件夹。
我使用的是 Windows 7,并且安装了 Python 2.7.5 和 3.3.2。我的 path 环境变量设置为 C:\Program Files\Intel\WiFi\bin\;C:\Progr
从 python wheel 分发包中排除文件的正确方法是什么? 编辑 MANIFEST.in 没有任何效果,我找不到有关此详细信息的信息。 最佳答案 你为什么要这样做?当一个项目在目标机器上第一次运
在 Python 中,运行程序后,会在名为 __pycache__ 的文件夹中保存缓存。有关这些文件夹功能的进一步说明,请参阅 this question . Ruby 有类似的东西吗?如果不是,为什
我在本地 win7 机器上构建了一个 Web 应用程序。我用 pycharm 做到了,并使用 git 作为版本控制。我是一个完全的 git 新手。 我将存储库放在 github 上,以便我可以将 we
这是我的 .gitignore : *__pycache__* *.pyc db.sqlite3 *.DS_Store media/ res/ 我可以在我的 上看到原子 那个__pycache__目录
CPython 3.x 和 PyPy 遵循 PEP 3147并将 pyc 文件存储在 __pycache__ 目录中,并附加一个 Python 版本后缀。 我如何强制 CPython 2.7 将其 p
问题:我在 Windows 7 上安装了 conda 4.2.13,并且我想在每次导入某些 python (3) 模块时禁止创建 __pycache__ 文件夹由我创建。为此,我在互联网上的不同帖子中
我的 Jenkins CI 作业从 Git checkout 一个 Python 项目,构建应用程序,运行一些测试,然后将应用程序部署到服务器。 通常,我会设置我的 CI 作业以在每次运行之间删除工作
我想避免让 Python 字节码 *.pyc 文件弄乱我的工作目录。 Python 3.2+ uses a subdirectory为此调用了 __pycache__。 由于我从事的许多项目都是 Py
我是一名优秀的程序员,十分优秀!