问题标签 [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 投票
2 回答
2591 浏览

python - 动态更新 PYTHONPATH 可防止 .pyc 更新

为了让自己在我的项目中有一个清晰的文件结构,我使用以下代码片段将项目主文件夹动态添加到 PYTHONPATH 中,因此确保我可以从文件位置上方导入文件。

因为我这样做了,所以当我启动我的主文件时,在我手动删除任何 .pyc 文件之前,不再识别对模块的更改。因此,我认为这出于某种原因阻止了 python 检查 pyc 文件是否是最新的。我能以任何方式克服这个问题吗?

0 投票
1 回答
1020 浏览

windows - 如果文件夹是只读的,那么 pyc 文件在哪里?

我正在运行.py只读网络文件夹中的文件(通过 Windows 上的 Python 2.7)。pyc 文件是否仍然生成?如果是这样,他们去哪里?

0 投票
2 回答
1191 浏览

python - 共享/备份时使用 .py 或 .pyc 文件?

这个答案告诉我在运行 .py 文件时会创建一个 .pyc 文件,据我所知,这可以在重新运行时节省加载时间。这让我想知道在创建 .pyc 之后 .py 文件的意义何在。

在备份或共享我的代码时,我不想包含多余或无关的文件。我应该关注哪种文件类型?

附带问题:我有一个脚本调用另一个脚本。运行它们后,被调用的脚本得到了一个 .pyc 文件,但执行调用的主脚本没有。为什么会这样?

0 投票
1 回答
3493 浏览

python - AttributeError: 'module' 对象没有由 *.pyc 引起的属性 'join'

我在 mac 上创建了 1 行文件:myfile.py

我得到:

我通过终端做了,它起作用了:

我又做了一次之后,还是不行。最后,我意识到问题出在以下几点:我正在从不同的目录执行 import networkx (通常我从桌面工作),直到我删除了我在桌面中创建的测试文件之前它没有工作(由我创建) )。该文件的名称为:

字符串.pyc

因此问题是:发生了什么。为什么这个 *.pyc 文件会导致问题。是否所有 *.pyc 文件都会产生此类问题?

0 投票
2 回答
1413 浏览

python - 为什么 .pyc 文件的存在会改变我的代码的结果?

我有一个算法的测试用例,它在第一次执行后给出了不同的结果。

测试从两个文件中导入算法和测试数据。

第一次执行返回正确的结果并为测试数据文件创建一个 .pyc 文件。第二次和所有后续执行返回不正确的结果。当我删除测试数据的 .pyc 文件时,下一次执行会再次返回正确的结果(并再次创建一个新的 .pyc 文件)。

当我将测试数据移动到与测试用例本身相同的文件中时(即避免创建 .pyc 文件),测试总是通过。

我无法将此修复程序应用于我的完整程序。

这是一个已知问题,有解决办法吗?

0 投票
2 回答
73 浏览

python - 如果我使用 pip 安装模块,我如何确保其他人可以在不安装该模块的情况下运行我的程序?

我正在制作一个使用 PyMySql 的程序,我希望人们能够运行我的程序而无需手动安装 PyMySql,有什么方法可以实现吗?

我已经尝试编译为 .pyc 但这似乎不起作用,实际上当我卸载 PyMySql 时它不再起作用了。

PS:可能有更好的语言可以做到这一点,但这是学校的家庭作业,只能使用python,也对不起我的英语不好

0 投票
0 回答
26 浏览

python - 查询:如何重新编译python文件或克服缓存版本(.pyc)

有以下查询:

考虑 test/auto/gen/ init .py 的版本字段设置为 1.1.1

现在启动包含以下内容的脚本:

步骤1:from test.auto import gen as auto_gen

第二步:打开文件test/auto/gen/__init__.py

第 3 步:写入__version__=1.1.2此文件

第 4 步:现在使用 auto_gen 检查 auto_gen.__version__this 仍然指向的内容1.1.1

但是当我退出脚本并再次回来时,我在导入后看到auto_gen.__version__给了我更新的值1.1.2

我也尝试在写入文件后再次导入,但仍然是同样的问题。( from test.auto import gen as auto_gen)

所以这个问题我认为是一个通用问题。从某种意义上说,如果我正在运行一个脚本并且它会动态生成一个 python 文件,那么该对象不会得到更新。

从 ipython 或脚本执行退出然后再次运行可以解决这个问题。

任何人都可以对这个问题提出一些建议。

0 投票
0 回答
80 浏览

python - Python 看不到文件的变化

我有一个 python 脚本,它导入一个读取文件并从中提取一些信息的模块。这是这样的:

该模块执行:

变量“file_name”是一个文本文件,它不是由脚本编辑的。当我编辑文本文件时,我的班级在第一次运行脚本时看不到更改(就像未编辑 txt 文件一样),只有第二次。怎么了?

附加信息:我从 Windows 中的批处理文件调用主 python 脚本,我认为 pyc 文件有问题,所以我使用“-B”参数:

我删除了所有 pyc 文件,我的主要 python 脚本也导入了 sys 模块并且有一个“sys.dont_write_bytecode = True”,但问题仍然存在。

0 投票
1 回答
2194 浏览

python-2.7 - 如何在 Unix 中运行编译后的 python 文件,如 shell 脚本?

我已经创建了一个编译的 python 文件。当我使用 python 命令执行文件时,它工作正常,如下所示。

$ python 文件.pyc

但是,当我像运行 .sh 文件一样将 ./ 放在文件名(file.pyc)之前时,它不起作用。它会抛出错误。

$ ./file.pyc

它拥有所有特权(777)。

有没有办法像我们对 test.sh 文件一样执行 test.pyc 文件?

问候, 萨扬坦

0 投票
1 回答
337 浏览

python - How do I let CPython 2.7 use the __pycache__ directory?

CPython 3.x and PyPy follow PEP 3147 and store pyc-files in __pycache__ directories with a Python version suffix attached to them. How can I force CPython 2.7 to store its pyc-files in __pycache__ directories as well (opposed to its default behavior of storing pyc-files without suffix right next to the corresponding py-files in the same directory)?

I realize that I should probably not do this system-wide because a lot of other software expects CPython 2.x's default behavior. So what I am looking for is a way to do this per project or per virtual environment or, if there is no other solution, per custom compiled and custom installed (e.g. in ~/bin) CPython interpreter.


Some research: Relevant discussion on Debian mailing list; code review for PEP 3147 implementation in CPython 3.2.