如何避免 Python 3.x 中的 .pyc 文件?

0 投票
4 回答
2492 浏览
提问于 2025-04-18 16:11

我现在在用Python 3.4,想知道怎么能不生成 .pyc.pyo 文件(也就是 __pycache__ 文件夹),而不需要在命令行里改来改去。

我用这个命令就能正常工作:在终端里输入 python3 -B something.py

但是这些方法在Python 3里好像不管用(或者其实可以?):

import os

os.environ['PYTHONDONTWRITEBYTECODE'] = "whatever"

根据官方说明,如果设置成一个非空的字符串,应该就能生效。但我试了之后没成功。

我漏掉了什么呢?

4 个回答

0

看看这个……在执行之前设置环境变量 export PYTHONDONTWRITEBYTECODE="" 可以在 .bashrc 文件中设置这个 或者用别名命令 alias python3="python3 -B" 来实现

..如何避免 .pyc 文件?

不过你会在导入的模块级别看到一个pycache 文件夹

1

环境变量是在程序启动时被可执行文件读取的。如果你在脚本中设置这个变量,可能对当前的解释器没有影响。你必须在运行可执行文件之前设置它。

2
  • Python 3会创建一个叫__pycache__的文件夹,里面存放的是与版本相关的编译后的Python文件。而.pyc文件是Python 2用的。

  • 在启动Python时,你需要在命令行或者环境中指定这些设置,而不是在之后。不过,如果你在一个支持shebang(开头的特殊注释行)的环境中写可执行脚本,你可以这样做:

#!/usr/bin/env python3 -B
  • 因为你的问题提到“不能使用命令行”,你可以为你的系统或终端设置一个叫PYTHONDONTWRITEBYTECODE=1的环境变量。
4

我认为环境变量必须在Python解释器启动之前设置。如果在Python脚本内部设置这个变量,似乎就太晚了,因为解释器已经加载了脚本并生成了字节码文件。

撰写回答