如何在Python中查找特定“包含”库的位置?

问题描述 投票:0回答:1

注:
我已经进行了广泛的搜索,但没有找到任何类似于答案的东西,包括这里。 如果这是一个愚蠢的问题或重复的问题,请接受我的道歉。

另请注意:
请不要建议我更新 [X],因为它无法完成。

操作系统版本和安装的Python版本(等)是硬性要求,如果不付出不小的努力就无法更改,而这种情况是不会发生的。 更正:正在努力更新 gopigo 库以在 Bullseye 和 Bookworm 上运行,但这些是长期项目,对我没有帮助,因为它们甚至还没有接近完成。

情况:
我有一个运行 Raspberry Pi O/S Buster 并安装了 Python 3.7 的机器人。

机器人的许多编程接口都是Python文件,其中包含各种库。 例如,两个通用库:“easygopigo”和“gopigo”。

无论出于何种原因,这些文件似乎有六到七个副本分散在各处,其中一些位于“pi”用户的主目录和/或子目录中,其他位于文件系统内的各个其他位置。

问题:
在特定的 Python 程序中,我如何知道特定的包含文件是什么以及在哪里?

例如:给定“import EASY from easygopigo”,我如何找到正在使用的众多“easygopigo”库中的哪一个?

换句话说,我想要“which [command]”的Python等效项,如“which [library file]”,这将为我提供包含该文件时将使用的文件的路径和文件名。

请原谅我的愚蠢,并提前感谢您提供的任何帮助。

linux python raspbian debian-buster
1个回答
1
投票

导入后,对其调用

str()
,或者(对于许多/大多数模块)查看模块的
.__path__
属性。

>>> import numpy
>>> print(str(numpy))
<module 'numpy' from '/Library/Frameworks/Python.framework/Versions/3.12/...numpy/__init__.py'
>>> numpy.__path__
['/Library/Frameworks/Python.framework/Versions/3.12/.../site-packages/numpy']

要确定before是否真正导入,需要搜索

sys.path

© www.soinside.com 2019 - 2024. All rights reserved.