计算 Python 模块分布中的目录路径
Calculate directory path in Python module distribution
我有一个 Python 模块分发(它是一个鸡蛋),其中包含一些我想在程序运行期间复制的附加文件和目录。
├── mypkg
│ ├── extra_files
│ │ ├── layouts/
│ │ ├── scripts/
│ │ └── config.yaml
当使用mypkg
时,我想将extra_files
目录的所有内容复制到磁盘上的其他地方。类似于:
shutil.copytree('mypkg/extra_files', destination)
我已经查看了 pkg_resources
,但我似乎无法通过这种方式计算目录路径。
如何计算分发包中文件和目录的路径?我是否需要先列出所有目录,然后对每个目录中的每个文件调用 pkg_resources.resource_stream
?
我实际上能够使用 __file__
做到这一点,其中 returns 模块首次加载的路径名。我可以像这样获得我的静态目录的完整路径:
import os
directory = os.path.join(os.path.dirname(__file__), 'templates/index.html')
我有一个 Python 模块分发(它是一个鸡蛋),其中包含一些我想在程序运行期间复制的附加文件和目录。
├── mypkg
│ ├── extra_files
│ │ ├── layouts/
│ │ ├── scripts/
│ │ └── config.yaml
当使用mypkg
时,我想将extra_files
目录的所有内容复制到磁盘上的其他地方。类似于:
shutil.copytree('mypkg/extra_files', destination)
我已经查看了 pkg_resources
,但我似乎无法通过这种方式计算目录路径。
如何计算分发包中文件和目录的路径?我是否需要先列出所有目录,然后对每个目录中的每个文件调用 pkg_resources.resource_stream
?
我实际上能够使用 __file__
做到这一点,其中 returns 模块首次加载的路径名。我可以像这样获得我的静态目录的完整路径:
import os
directory = os.path.join(os.path.dirname(__file__), 'templates/index.html')