如何避免 Python 3.x 中的 .pyc 文件?
我现在在用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" 来实现
不过你会在导入的模块级别看到一个pycache 文件夹
1
环境变量是在程序启动时被可执行文件读取的。如果你在脚本中设置这个变量,可能对当前的解释器没有影响。你必须在运行可执行文件之前设置它。
2
Python 3会创建一个叫
__pycache__
的文件夹,里面存放的是与版本相关的编译后的Python文件。而.pyc
文件是Python 2用的。在启动Python时,你需要在命令行或者环境中指定这些设置,而不是在之后。不过,如果你在一个支持shebang(开头的特殊注释行)的环境中写可执行脚本,你可以这样做:
#!/usr/bin/env python3 -B
- 因为你的问题提到“不能使用命令行”,你可以为你的系统或终端设置一个叫
PYTHONDONTWRITEBYTECODE=1
的环境变量。
4
我认为环境变量必须在Python解释器启动之前设置。如果在Python脚本内部设置这个变量,似乎就太晚了,因为解释器已经加载了脚本并生成了字节码文件。