- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我见过几个 Python 项目的 .dockerignore
文件示例,其中 *.pyc
文件和/或 __pycache__
文件夹被忽略:
**/__pycache__
*.pyc
由于无论如何都会在容器中重新创建这些文件/文件夹,我想知道这样做是否是一个好习惯。
最佳答案
是的,这是推荐的做法。原因有以下几个:
在.dockerignore
中,您指定不会转到生成图像的文件,这在构建最小图像时可能至关重要。粗略地说,字节码文件的大小等于实际文件的大小。字节码文件不适合分发,这就是为什么我们通常也将它们放入 .gitignore
中。
在Python 3.x的早期版本中,有几个与缓存相关的issues :
Python’s scheme for caching bytecode in .pyc files did not work wellin environments with multiple Python interpreters. If one interpreterencountered a cached file created by another interpreter, it wouldrecompile the source and overwrite the cached file, thus losing thebenefits of caching.
自 Python 3.2 起,所有缓存文件都以解释器版本为前缀 mymodule.cpython-32.pyc
并显示在 __pychache__
目录下。顺便说一下,从 Python 3.8 开始你甚至可以 control将存储缓存的目录。当您限制对目录的写访问但仍希望获得缓存使用的好处时,它可能很有用。
通常情况下,缓存系统运行良好,但有一天可能会出现问题。值得注意的是,如果 .py
(位于同一目录中)文件,将使用缓存的 .pyc
文件而不是 .py
文件。 > 文件丢失。在实践中,这种情况并不常见,但如果有些东西一直“存在”,那么考虑删除缓存文件是一个好点。当您在 Python 中试验缓存系统或在不同环境中执行脚本时,这可能很重要。
很可能您甚至不需要考虑它,但缓存文件可能包含某种敏感信息。由于当前的实现,.pyc
文件中提供了实际文件的绝对路径。在某些情况下,您不想共享此类信息。
似乎与字节码文件交互是相当频繁的必要,例如,django-extensions有适当的选择compile_pyc
和 clean_pyc
.
关于python - 我应该将Python的pyc文件添加到.dockerignore吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59684674/
当我第一次开始使用 Django 应用程序时,我不记得这些文件在那里,并且 Django 教程的文件列表中也没有提到它们 我对此进行了更多研究,发现这些就是所谓的字节码 - 正如 this S.O.
不久前,我不得不将一些服务器从 Python 2.4 升级到 Python 2.5。我发现在 Python 2.4 下创建的 .pyc 文件在 Python 2.5 尝试运行它们时会崩溃。 当我从 2
关于 Python 的 .pyc 文件已经有几个问题,但我还没有读到 1) 何时(在什么情况下)创建这些文件以及 2) 是否有充分的理由保留它们。 更具体地说: 关于 (1):在我运行的 200 个或
根据我所做的测试,使用相同版本的 python(相同的魔数(Magic Number)),64 位解释器可以加载由 32 位版本的 python 生成的 pyc 文件。我假设是相互的。 但是它绝对安全
我有 2 个 Python 文件,名为 numbers.py 和 numpyBasicOps.py。 numbers.py 是一个简单的 Python 文件,没有导入任何模块。 numpyBasicO
我假设标准库类型提示支持全部基于阅读普通源代码,就像 inspect 对某些事情所做的那样,但我查看了 typing.py在标准库中,编译器似乎确实在对象本身上存储了类型提示信息。 所以,如果我这样做
我目前正在开发一个 C# 应用程序,该应用程序应该能够启动多个 Python 解释器。 我读过几篇有关该主题的文章,例如: http://www.awasu.com/weblog/embedding-
我有一个 python 编译的脚本(script.pyc,我没有 .py 文件),它在我的 Windows 命令提示符下运行良好,我想从我的 Java 应用程序中执行它。我尝试使用 runtime()
似乎有时当我从 git 中拉取时,旧的 .pyc 运行而不是新拉取的 .py 文件有没有办法自动清除 .pyc 文件以便它始终运行最新版本? 最佳答案 旧的 .pyc 会被 Python 自动清除,前
我最近开始在树莓派上进行 python 开发。在阅读 .pyc 文件以加速启动时,我想知道如果我在 PC 上测试 .pyc 文件,假设 Rpi 上有相同的 python 模块,它会直接工作吗?还请包括
做的时候: >git status 它在“未跟踪文件”下显示了一个大的 .pyc 文件列表。我不希望它显示这些,因为它会增加噪音。 换句话说,如何让 git 始终忽略所有项目的 .pyc 文件? 编辑
我了解“.pyc”文件是纯文本“.py”文件的编译版本,在运行时创建以使程序运行得更快。但是我观察到一些事情: 修改“py”文件后,程序行为会发生变化。这表明“py”文件已编译或至少经过某种散列过程或
我是 python 的新手,因此是一个愚蠢的问题。 据我所知,在第一次执行 *.py 程序时,字节码会被创建到 *.pyc 中并一直使用到 *.py 文件发生更改。 这个 *.pyc 字节码可以在项目
什么是pyc文件 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由pytho
我有一个使用几个 PY 文件的程序。在我使用 PY 文件之前,代码工作正常。但是,对于加密,当我删除 PY 文件并只保留 PYC 文件时,程序失败并显示消息:ImportError: 没有名为 abc
我有一个使用几个 PY 文件的程序。在我使用 PY 文件之前,代码工作正常。但是,对于加密,当我删除 PY 文件并只保留 PYC 文件时,程序失败并显示消息:ImportError: 没有名为 abc
假设我有一个像这样组织的 python 代码库: ./mod/: ./__init__.py ./main/main.py ./main/__init__.py ./m
我在一个相当大的项目中重命名了一些文件,并想删除它们留下的 .pyc 文件。我尝试了 bash 脚本: rm -r *.pyc 但这并没有像我想象的那样在文件夹中递归。我做错了什么? 最佳答案 fi
昨天使用Google App Engine在python中开发它停止运行当前版本的脚本。它似乎没有执行最新版本,而是运行了先前预编译的 .pyc,即使 .py 源已更改。 错误消息实际上引用了最新来源
pyc 文件在过去一直是痛苦的原因,我最近看到一些关于防止 python 生成它们的帖子。目前,我们只是在任何代码更改后运行一个脚本来清理它们,以确保生成新的代码,但通常禁用它们会容易得多。在我们的生
我是一名优秀的程序员,十分优秀!