gpt4 book ai didi

python 如何使用 imp.find_module 或者替代

转载 作者:太空宇宙 更新时间:2023-11-04 06:23:56 29 4
gpt4 key购买 nike

我目前正在为 python 编写自动完成功能。因此我需要找到导入的模块。

使用 imp.find_module 似乎很容易,但如果我插入一个路径,它就不起作用,这对自动完成很重要。插入路径意味着它不会找到系统模块。

解决方案是获取 PYTHONPATH,然后将其插入。但这确实不是一个好方法,因为我只想要默认路径。此外,PYTHONPATH 甚至不在我的 os.environ[] 中。

除了这个复杂的程序真的没有其他选择吗?如果没有,我如何获得库的默认路径?

是否有更好的解决方案,自动爬取目录?

注意:由于我正在编写自动完成功能,所以我不想实际导入/执行任何代码。

最佳答案

要获取标准库的路径,请使用:

>>> import sys
>>> sys.path
['', '/usr/lib/python27.zip', '/usr/lib/python2.7', ...]

使用这些路径,您可以使用 os.listdir 搜索它们,例如:

import sys, os 
standardlib = os.listdir(sys.path[n])

如果你检查路径是否是一个目录,你将有检查。

stdlibs = []
for lib in sys.path:
if os.path.isdir(lib):
for module in os.listdir(lib):
stdlibs.append(lib + "/" + module)

您可能必须递归地检查它并检查扩展。

这会让您知道从哪里开始。

您还必须检查您的当前目录 (os.getcwd()) 以查找可以作为包一部分的文件 (python package structure)。

关于python 如何使用 imp.find_module 或者替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9881472/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com