- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道如果Python将编译后的代码存储在原始源文件的文件流中不是更好吗?这适用于支持 fork /数据流的文件系统,如果不可能,则回退。
这样做将解决污染源代码树的问题,或者解决诸如删除 .py
后 .pyc
仍然存在并被加载和使用的问题。
您对此有何看法,听起来是个好主意还是不好?需要查看哪些问题。
最佳答案
您确实会以这种方式牺牲大量的可移植性 - 现在 .pyc
文件的可移植性并不常见(通常由 LAN 上的异构系统通过某种网络文件系统安排使用,例如例如,尽管我从来不喜欢这种方法的性能特征),而您的方法只能在非常特定的文件系统上工作,并且(我怀疑)永远不能通过异构机器上的网络安装。
因此,将您想要的行为设置为默认行为将是一个可怕的错误 - 但如果您的部署环境不支持,将其作为可用于特定请求的选项肯定会很巧妙不关心上述所有问题,但确实关心您提到的一些问题。另一个“很酷的选择”,我实际上使用频率大约是 100 倍,是将 .pyc
"file"放入数据库中,而不是将它们放在文件系统。
很酷的事情是,这可以(相对)轻松地以某种方式(取决于 Python 版本)作为附加“导入黑客”来完成——在最近的版本中最容易使用 importlib ,Brett Cannon 的杰作(但这可能会使向后移植到较旧的 Python 版本比其他方式更困难......太多取决于您需要支持的版本,我在您的 Q 中没有看到这个细节,所以我不会进入实现细节,但总体思路在不同实现中并没有太大变化)。
关于python - 让 python 将编译代码存储在文件流而不是 pyc 文件中是一个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3793745/
当我第一次开始使用 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 生成它们的帖子。目前,我们只是在任何代码更改后运行一个脚本来清理它们,以确保生成新的代码,但通常禁用它们会容易得多。在我们的生
我是一名优秀的程序员,十分优秀!