我试图matplotlib
在我的 python3.5 环境中识别站点包的冗余安装。
图书馆的贡献者(GitHub 问题)建议我使用
python3.5 -m 站点
find
识别使用以下命令 时搜索的 python3.5 环境中的路径:find ./ -name matplotlib
这意味着它find
在某种程度上与(这似乎是公平的)相关PATH
,但似乎没有在线参考解释如何相关。如果有关系的话,那么,我特别想扩大在我的环境中find
搜索冗余的路径。matplotlib
仅供参考,这是使用终端发生的情况:
Anjalis-MBP:~ ahanagrawal$ python3.5 -m site
sys.path = [
'/Users/ahanagrawal',
'/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip',
'/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5',
'/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin',
'/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages',
]
USER_BASE: '/Users/ahanagrawal/Library/Python/3.5' (doesn't exist)
USER_SITE: '/Users/ahanagrawal/Library/Python/3.5/lib/python/site-packages' (doesn't exist)
ENABLE_USER_SITE: True
答案1
当您调用时python3.5 -m site
,python 会site.py
在您的sys.path
.这sys.path
是一个由环境变量和各种其他机制(包括识别安装在site-packages
.
现在你matplotlib
可能正走在其中一条道路上。但是,如果您还安装了 python3.4,它也可能位于该目录下,并且该python3.5 -m site
命令不会显示目录。因此,该建议对于查找所有 matplotlib 安装毫无用处。
发出命令将找到您开始搜索的目录下find ./ -name matplotlib
命名的所有文件、目录等。matplotlib
如果您碰巧位于根目录中/
并且对所有子目录具有读取权限,您可能会找到所有matplotlib
安装(假设它们有文件或目录名称matplotlib
)。如果您从其他地方发出命令,则不会。例如尝试
mkdir bla
cd bla
find ./ -name matplotlib
尽管你知道 matplotlib 已经安装,但保证找不到它。
你最好尝试:
cd /
sudo find . -name matplotlib
PATH
您的环境变量对搜索位置没有影响find
,我不知道您为什么说“这意味着 find 在某种程度上与 PATH 相关”