【问题标题】:How can I find additional files installed with my python package from an included script?如何从包含的脚本中找到与我的 python 包一起安装的其他文件?
【发布时间】:2011-09-02 21:44:54
【问题描述】:

我已经构建了一个安装了许多外部文件的 python 包。我需要能够从随包一起安装的脚本中读取这些文件。我可以看到我可以在我的脚本中使用__file__,它会返回如下内容:

/Library/Python/2.6/site-packages/M5-0.3.0-py2.6.egg/EGG-INFO/scripts/..

因此我可以导航到文件的安装位置(.egg 目录的顶层),但我正在寻找一种更“标准”的方式来确定我的包的安装位置。

【问题讨论】:

    标签: python setuptools distutils


    【解决方案1】:

    你可能想要类似的东西 pkgutil.get_data 函数。

    如果您的包在磁盘上作为标准 python 包目录结构存在,它将读取相对于__file__ 的资源,并且我认为它也会从压缩的鸡蛋中读取资源(尽管我没有使用它我自己)。

    【讨论】:

      【解决方案2】:

      os.getcwd() 能让你靠近吗? (它返回“当前工作目录”,通常是您从中启动主脚本的目录)

      使用__file__ 会有什么问题?如果您正在寻找任何更高级别的功能,它可能会使用类似的技术。

      import os
      d = os.path.dirname(__file__[:__file__.rindex(os.extsep+'egg')])
      

      给你目录; '导航'到它

      os.startfile(d)
      

      【讨论】:

        猜你喜欢
        • 2019-04-26
        • 1970-01-01
        • 2018-05-22
        • 1970-01-01
        • 2021-12-22
        • 1970-01-01
        • 2013-01-18
        • 2016-06-24
        • 2018-12-05
        相关资源
        最近更新 更多