【问题标题】:Why does Python site-packages path have different case than Windows path?为什么 Python 站点包路径的大小写与 Windows 路径不同?
【发布时间】:2015-11-11 17:53:22
【问题描述】:

我在另一个问题的code 之后列出了我的站点包路径:

import site
site.getsitepackages()

返回了这个结果:

['C:\\Users\\bbrown\\AppData\\Local\\Enthought\\Canopy\\User',
'C:\\Users\\bbrown\\AppData\\Local\\Enthought\\Canopy\\User\\lib\\site-packages',
 'C:\\Users\\bbrown\\AppData\\Local\\Enthought\\Canopy\\App\\appdata',
 'C:\\Users\\bbrown\\AppData\\Local\\Enthought\\Canopy\\App\\appdata\\lib\\site-packages',
 'C:\\Users\\bbrown\\AppData\\Local\\Enthought\\Canopy\\App\\appdata\\canopy-1.5.5.3123.win-x86_64',
 'C:\\Users\\bbrown\\AppData\\Local\\Enthought\\Canopy\\App\\appdata\\canopy-1.5.5.3123.win-x86_64\\lib\\site-packages']

然而(在我的 Windows 7 外观控制面板中显示隐藏文件和文件夹后)似乎我的站点包仅在

C:\Users\bbrown\AppData\Local\Enthought\Canopy\App\appdata\Lib\site-packages

libLib。什么给了?

【问题讨论】:

    标签: python windows path python-import enthought


    【解决方案1】:

    这就是文件路径在 Windows 上的工作方式。 Windows 路径不区分大小写。

    【讨论】:

    • 这毫无意义。为什么路径的其余部分不是小写的?
    • @TomZych:不知道。我只是说为什么大小写不匹配不会导致问题,而不是为什么存在大小写不匹配。
    • 之所以结合 Windows 和 Python 处理路径字符串的方式,在历史上是偶然的。但关键的一点是,您永远不能对 Windows 中路径的情况做出任何假设。如果要比较两条路径,则必须始终先对它们进行大小写规范化。
    • 多哈。我很尴尬,我没有意识到 Windows 路径不区分大小写,我想删除我的问题。但不会。仍然提出问题:Python 是如何在其表示中最终将目录大写的?
    • 原因很容易在相应的代码中找到:hg.python.org/cpython/file/ee879c0ffa11/Lib/site.py#l297lib\site-packages 部分是硬编码的 - 而其余部分路径来自安装/环境。
    猜你喜欢
    • 2010-09-28
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 2019-10-12
    • 2012-01-31
    • 2013-05-26
    • 2018-03-29
    相关资源
    最近更新 更多