如何使用 python 3.x 获取绝对 pyc 文件路径?

How to get absolute pyc file path with python 3.x?

如何在当前环境下得到python3.x编译后的pythonpyc文件路径?我知道它在 __pycache__ 目录中,但我找不到找到文件路径的方法。因为python 3的pyc文件名会随环境改变。

鉴于您知道源文件(即 .py)的路径,因此有一个函数 importlib.util.cache_from_source 可以完全满足您的需求。例如,要获取对应于 numpy 包的 .pyc 文件,您可以这样做:

import importlib
import numpy

importlib.util.cache_from_source(numpy.__file__)

对我来说(在 OS X 上),这会打印出如下内容:

/<absolute path to site-packages>/numpy/__pycache__/__init__.cpython-36.pyc