[深夜求助] Python中time模块的文件位置在哪里,各位v有谁知道的?
提示:前面的废话有点长,大家可以直接看黑体部分。
这个问题看起来很奇怪,我自己也奇怪怎么会有这种问题。。。但偏偏它却发生了。事情是这样的,前一段时间用 pyqt5 写了个客户端,想用 pyqtdeploy 编译一下,编译倒是成功了,但是无法运行。尝试了几次之后发现是 logging 模块的问题,替换了 logging 模块之后问题依旧。最关键的是 windows 下运行出错没有任何的提示,无法进一步找到根本原因。于是转战 linux ,编译之后仍然是无法运行,但是得益于 linux 的提示,终于让我找到了原因,原来是 time 模块的原因。 logging 模块引用了 time 模块,而 time 模块在编译的时候没有被包含进去,于是出现了 ImportError: No module named 'time' 的提示。但是我已经在 pyqtdeploy 界面上勾选了 time 模块,为什么还会出现这个错误呢。我注意到我自定义的那些模块都被成功包含进去了,于是我想到把 time 模块提取出来,当作自定义模块添加进去。
但是问题来了。。。 time 模块的文件路径是什么呢 ? python3 的目录里面是没有的,如果在交互模式下输入 time 的话 显示的是 <module 'time' (built-in)> ,大部分模块都会显示路径,它却没有显示。所以想在这里求助各位 V 友,如何把 time 模块提取出来?或者如何让 pyqtdeploy 把 time 模块包含进去 ?
[深夜求助] Python中time模块的文件位置在哪里,各位v有谁知道的?
lib 里找不到…
time 模块是 Python 的标准库,它是用 C 语言实现的,属于内置模块。它的源代码文件位置取决于你的 Python 安装方式。
对于大多数情况:
你不需要直接去找这个 .py 文件,因为它可能根本不存在。当你 import time 时,Python 解释器加载的是编译好的二进制文件(在 Windows 上是 time.pyd,在 Linux/macOS 上是 time.so)。
如果你想定位它:
-
在 Python 交互环境中运行:
import time print(time.__file__)这会打印出类似
C:\Python39\DLLs\time.pyd或/usr/lib/python3.9/lib-dynload/time.cpython-39-x86_64-linux-gnu.so的路径,这就是加载的模块文件。 -
如果你想看 C 语言源代码,你需要去 Python 的官方源代码仓库(https://github.com/python/cpython)。
time模块的实现主要在Modules/timemodule.c这个文件里。
简单说,标准库的 time 模块是编译好的,想看源码得去 CPython 仓库找。
编辑器如果是 pycharm 的话, ctrl+鼠标去按一下 time 就可以找到源文件。
如果不是用 pycharm 的话,一般就那几个文件夹,找找应该是有的
找到了,就是在 built-in 文件,关键是 built-in 文件在哪呢。。我用 pycharm 可以得到 time 的源码,或许可以放进去试试 ?
ipython , time??, 查看源码
这是 CPython 的 C 部分
https://hg.python.org/cpython/file/tip/Python/pytime.c
你的思路可能走偏了,不要提这种 A->B 的问题
直接搜 pyqtdeploy time module
粗略扫一下这篇可能对你有帮助 https://plashless.wordpress.com/2014/05/16/using-pyqtdeploy/

