问题标签 [pyc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python 字节码和 .pyc 文件格式规范
我正在寻找 pyc 文件格式规范。我发现这个链接提供了没有操作码的字节码指令,但我需要更详细的文件,其中包括.pyc
. 谁能给我一个链接?
python - 我应该在部署时生成 *.pyc 文件吗?
当开发 Python Web 应用程序 (Flask/uWSGI) 并在我的本地机器上运行它时,*.pyc
文件由解释器生成。我的理解是,这些编译后的文件可以让加载更快,但不一定运行得更快。
当我将同一个应用程序部署到生产环境时,它在一个对本地文件系统没有写权限的用户帐户下运行。没有*.pyc
提交到源代码控制的文件,并且在部署期间不努力生成它们。即使 Python 想.pyc
在运行时写一个文件,它也做不到。
最近我开始想知道这是否对应用程序的性能有任何切实的影响,无论是在流程开始后的第一个页面浏览量方面,还是在其整个生命周期内始终如一。
我应该python -m compileall
在部署脚本中加入吗?
python - 在另一台机器上使用包含 pyc 文件的 pyz
在我参与的一个项目中,我们在 Ubuntu 14.04(使用 Python 3.4)上使用 compileall.compile_dir 打包我们的 python 产品。pyc 文件的目录等被捆绑(tar.gz 文件)和分发。更改文件名以删除文件名的 cpython-34 部分。
我们有一个运行 Ubuntu 16.04 的新测试环境,该环境具有 Python 3.5,并希望运行/测试代码。当我们解压并运行它时,我们得到一个错误:
如果我手动解压缩 pyz 文件并尝试从命令行运行 python,则在导入内容后,我会收到一条消息,说明它是 3.4 二进制文件。相反,如果我在 3.5 机器上构建包,我完全可以在 3.5 机器上运行它,但是当我复制到 3.4 时,我得到了同样的错误。
问题是......我需要做什么来运行/测试它?我的想法...以某种 3.4 兼容模式运行 3.5。安装 3.4(可能来自源代码,因为我找不到 Ubuntu 16.04 的 3.4 包)。也许调整一些 3.5 配置设置?也许在打包时提供一个新设置以允许 3.4 和 3.5 工作?我假设我错过了一些想法,但我不想问我认为解决方案是什么,我想知道解决方案是什么。
谷歌搜索后发现一堆与 pyc 文件有关的 SO 问题,我知道 3.4 文件不兼容,但有没有办法使用它?
python - 在生产中禁用 pyc 文件
pyc
文件在过去一直是令人悲痛的原因,我最近刚刚看到一些关于防止 python 生成它们的帖子。目前,我们只是在任何代码更改后运行一个脚本来清理它们,以确保生成新的,但通常禁用它们会容易得多。在我们的生产环境中禁用它们是否有任何我可能不知道的副作用?这样做有什么缺点?
我们遇到的唯一真正问题是有时文件过时导致导入错误,并且在大规模重构后难以调试。一旦意识到这是一个 pyc 问题,它就很容易修复,只需运行脚本即可,但在调试过程中可能需要 30 分钟才能实现。
python - Python threading.Timer 对象在编译为 .exe 时不起作用
这是对https://stackoverflow.com/questions/37684111/ironpython-exe-file-closing-immediately-no-exception-throw的跟进
我发现由于线程库中的 Timer 对象存在问题,我的程序一旦编译就无法工作。我已将该库包含在我的 \Lib\site-packages 目录中,并将该目录添加到程序的路径中。这是我正在使用的测试代码 - 一个简单的计数程序:
在 Visual Studio 的交互式解释器中完美运行,但是一旦我使用 pyc.py 编译为 exe 文件,它就不会运行,并且会在大约 5 秒后关闭,不会抛出异常。
如上一个问题所述,我有一个需要编译的带有 Timer 的程序,因为源代码包含敏感凭据。是否有任何技巧可以使 Timer 在 exe 中工作?它只是不兼容吗?
编辑:6天没有答案。不幸的是,互联网上的任何地方似乎都没有针对此特定问题的任何资源。就好像我是唯一一个有这个问题的人。这对我来说似乎很奇怪,因为问题似乎出在 Timer 对象本身,而且我无法想象没有其他人试图部署一个包含 Timer 的应用程序。在这一点上,任何见解都会有所帮助,因为我完全被难住了。
python - 删除所有 python *.pyc 文件以强制使用新代码是否安全?
TL;博士
- 选择所有
*.pyc
(具有匹配*.py
文件的)文件并删除它们以强制使用新代码是否安全? - 有没有办法在覆盖现有文件的同时找到并重新编译
.py
光盘上的所有.pyc
文件?
我对已更新的自定义 python 包有疑问。
.py
更新后(用新文件替换旧文件.py
),我注意到在导入包时 -引用了旧的编译代码(存储为*.pyc
文件)而不是新的代码(位于.py
文件中)。
当我更新一个包时,我需要“刷新缓存” (删除所有这些 pyc 文件,希望它们在第一次使用时会延迟初始化)。作为一个黑客,我考虑删除在磁盘匹配*.pyc
后缀(具有匹配*.py
文件)上找到的所有文件并重新启动机器
或者,有没有办法在覆盖现有文件的同时找到并重新编译.py
光盘上找到的所有.pyc
文件?
powershell - 无法从 Python 项目中递归删除 pyc 文件
我无法从我的 Python 项目中递归删除 pyc 文件。
这是项目:
tests 目录中确实有一些 pyc 文件:
但是,当我在 PowerShell 中输入此命令以删除所有 pyc 文件时:
PowerShell 输出此错误:
FIND:参数格式不正确
有人知道如何从这个 Python 项目中删除所有 pyc 文件吗?
python - 运行相同的 Python 2.7 脚本 - 稍作修改 - 同时运行
这是否会按预期运行run.py
- 就像在运行脚本之前一样运行 - 或者在运行之前所做的更改是否会New_York
影响运行Chicago
?
【run.py
稍作修改imported files
】
python - 在我的 Eclipse 项目中重命名我的源文件 logging.py 后无法导入 logging.py
我想,我通过重命名我的一个源文件 logging.py 来破坏 Eclipse,我很快将名称更改为其他名称,但 Eclipse 找不到原始的 python 标准文件......我重新安装了我的 Anaconda 安装,但它没有解决问题。 ..我后来发现这很可能是一个 Python 问题(见编辑 1)
当我要求 Eclipse 从“导入日志”行查找或打开文件时,似乎找不到它...
有什么想法可以在不重新安装 Eclipse 的情况下纠正这个问题吗?
编辑 1
pyinstaller 生成的可执行文件也会出现问题?!:
python - 如何在客户环境中运行 python 生产
我有一些应该在客户站点上运行的 python 应用程序。我将我的py
文件编译为pyc
(python 字节码)。
在客户环境中运行应用程序的标准方式是什么?我看到的选项是:
- 作为我的安装程序的一部分,安装一些 python 发行版,即 Anaconda。
- 要求客户在他们的环境中安装 python。
- 将 python 库和可执行文件与我的代码一起带上,并直接从我的安装目录运行它。
- 使用一些 py-to-exe 工具将脚本转换为 exe。
应用程序使用:该应用程序用作计算我的主要产品的统计数据的工具。客户不会明确地运行它。它不会有任何图形用户界面。
客户环境将是 x64 Windows 机器。没有其他限制。
有什么建议或意见吗?我在网上找不到这样的讨论。