是否也创建了内置模块的pyc文件?

时间:2019-04-30 04:55:57

标签: python-3.x

是否也创建了内置模块的pyc文件?

我的场景: 我有一个文件abc.py。

在abc.py中,我导入了os模块,并打印了os.getcwd()。

在这里,我期望必须创建os.pyc文件,但未创建os.pyc。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这取决于您的安装,但是内置模块和分发程序包将缓存在系统位置。 找到它们的方法如下:

  • 导入模块
  • 获取从module.__file__加载的文件
  • 转到该位置
  • 寻找文件夹__pycache__
  • 浏览该文件夹
➜  ~ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.__file__
'/usr/lib/python3.6/os.py'
>>> 
➜  ~ ll /usr/lib/python3.6/os.py 
-rw-r--r-- 1 root root 37K Oct 22  2018 /usr/lib/python3.6/os.py
➜  ~ ll /usr/lib/python3.6/__pycache__/os*
-rw-r--r-- 1 root root 29K Dec  3 20:37 /usr/lib/python3.6/__pycache__/os.cpython-36.pyc
➜  ~ 

内置软件包和dist软件包在全局范围内缓存,以便所有脚本都可以使用它们。

如果您使用的是virtualenv

,该位置会稍微靠近脚本。