问题标签 [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.

0 投票
1 回答
11321 浏览

python - Python 字节码和 .pyc 文件格式规范

我正在寻找 pyc 文件格式规范。我发现这个链接提供了没有操作码的字节码指令,但我需要更详细的文件,其中包括.pyc. 谁能给我一个链接?

0 投票
1 回答
2880 浏览

python - 我应该在部署时生成 *.pyc 文件吗?

当开发 Python Web 应用程序 (Flask/uWSGI) 并在我的本地机器上运行它时,*.pyc文件由解释器生成。我的理解是,这些编译后的文件可以让加载更快,但不一定运行得更快。

当我将同一个应用程序部署到生产环境时,它在一个对本地文件系统没有写权限的用户帐户下运行。没有*.pyc提交到源代码控制的文件,并且在部署期间不努力生成它们。即使 Python 想.pyc在运行时写一个文件,它也做不到。

最近我开始想知道这是否对应用程序的性能有任何切实的影响,无论是在流程开始后的第一个页面浏览量方面,还是在其整个生命周期内始终如一。

我应该python -m compileall在部署脚本中加入吗?

0 投票
1 回答
1038 浏览

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 文件不兼容,但有没有办法使用它?

0 投票
2 回答
5198 浏览

python - 在生产中禁用 pyc 文件

pyc文件在过去一直是令人悲痛的原因,我最近刚刚看到一些关于防止 python 生成它们的帖子。目前,我们只是在任何代码更改后运行一个脚本来清理它们,以确保生成新的,但通常禁用它们会容易得多。在我们的生产环境中禁用它们是否有任何我可能不知道的副作用?这样做有什么缺点?

我们遇到的唯一真正问题是有时文件过时导致导入错误,并且在大规模重构后难以调试。一旦意识到这是一个 pyc 问题,它就很容易修复,只需运行脚本即可,但在调试过程中可能需要 30 分钟才能实现。

0 投票
1 回答
658 浏览

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 的应用程序。在这一点上,任何见解都会有所帮助,因为我完全被难住了。

0 投票
1 回答
6608 浏览

python - 删除所有 python *.pyc 文件以强制使用新代码是否安全?

TL;博士

  • 选择所有*.pyc(具有匹配*.py文件的)文件并删除它们以强制使用新代码是否安全?
  • 有没有办法在覆盖现有文件的同时找到并重新编译.py光盘上的所有.pyc文件?

我对已更新的自定义 python 包有疑问。

.py更新后(用新文件替换旧文件.py),我注意到在导入包时 -引用了旧的编译代码(存储为*.pyc文件)而不是新的代码(位于.py文件中)。

当我更新一个包时,我需要“刷新缓存” (删除所有这些 pyc 文件,希望它们在第一次使用时会延迟初始化)。作为一个黑客,我考虑删除在磁盘匹配*.pyc后缀(具有匹配*.py文件)上找到的所有文件并重新启动机器

或者,有没有办法在覆盖现有文件的同时找到并重新编译.py光盘上找到的所有.pyc文件?

0 投票
2 回答
1771 浏览

powershell - 无法从 Python 项目中递归删除 pyc 文件

我无法从我的 Python 项目中递归删除 pyc 文件。

这是项目:

tests 目录中确实有一些 pyc 文件:

但是,当我在 PowerShell 中输入此命令以删除所有 pyc 文件时:

PowerShell 输出此错误:

FIND:参数格式不正确

有人知道如何从这个 Python 项目中删除所有 pyc 文件吗?

0 投票
0 回答
41 浏览

python - 运行相同的 Python 2.7 脚本 - 稍作修改 - 同时运行

这是否会按预期运行run.py- 就像在运行脚本之前一样运行 - 或者在运行之前所做的更改是否会New_York影响运行Chicago

run.py稍作修改imported files

0 投票
3 回答
949 浏览

python - 在我的 Eclipse 项目中重命名我的源文件 logging.py 后无法导入 logging.py

我想,我通过重命名我的一个源文件 logging.py 来破坏 Eclipse,我很快将名称更改为其他名称,但 Eclipse 找不到原始的 python 标准文件......我重新安装了我的 Anaconda 安装,但它没有解决问题。 ..我后来发现这很可能是一个 Python 问题(见编辑 1)

当我要求 Eclipse 从“导入日志”行查找或打开文件时,似乎找不到它...

有什么想法可以在不重新安装 Eclipse 的情况下纠正这个问题吗?

编辑 1

pyinstaller 生成的可执行文件也会出现问题?!:

0 投票
1 回答
3553 浏览

python - 如何在客户环境中运行 python 生产

我有一些应该在客户站点上运行的 python 应用程序。我将我的py文件编译为pyc(python 字节码)。

在客户环境中运行应用程序的标准方式是什么?我看到的选项是:

  • 作为我的安装程序的一部分,安装一些 python 发行版,即 Anaconda。
  • 要求客户在他们的环境中安装 python。
  • 将 python 库和可执行文件与我的代码一起带上,并直接从我的安装目录运行它。
  • 使用一些 py-to-exe 工具将脚本转换为 exe。

应用程序使用:该应用程序用作计算我的主要产品的统计数据的工具。客户不会明确地运行它。它不会有任何图形用户界面。

客户环境将是 x64 Windows 机器。没有其他限制。

有什么建议或意见吗?我在网上找不到这样的讨论。