注:
我已经进行了广泛的搜索,但没有找到任何类似于答案的东西,包括这里。 如果这是一个愚蠢的问题或重复的问题,请接受我的道歉。
另请注意:
请不要建议我更新 [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]”,这将为我提供包含该文件时将使用的文件的路径和文件名。
请原谅我的愚蠢,并提前感谢您提供的任何帮助。
导入后,对其调用
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