来自模块/导入包的路径

2024-05-15 11:16:52 发布

您现在位置:Python中文网/ 问答频道 /正文

  1. 我需要把一堆html/css/etc.文件打包成一个包:让我们称它们为“主题”。我这样做是为了让这些可以交叉应用于多个/任意数量的应用程序。

  2. 我有一个模块,它是wherever/virtualenv/lib/pythonVERSION/site packages/package\u name。

  3. 所有“主题”都位于包名称中名为“主题”的文件夹下

我不需要将这些主题作为模块本身导入,我只需要有一个文件系统中它们所在位置的引用,我不确定协议是什么。我能找到那条路,按我的需要把它传过去吗?我只需要找出,无论包安装在哪里,我都可以在包中找到一个目录并读取其中的内容。你知道吗

我猜,'是',答案很简单,但如何进行这一点上,我并不完全清楚,或者如果有更好的方式,我不知道。感谢您的任何意见。你知道吗

一些背景:

我正在尝试为flask fleem创建模块加载程序:

https://github.com/thrisp/fleem

编辑:

目前对我有效的答案是从包init文件导出一个常量:

包主题=操作系统路径连接(操作系统路径目录名(os.path.abspath路径(\uuu文件\uuuu)),'主题')

欢迎改进和/或更好的解决方案。你知道吗


Tags: 模块文件答案路径应用程序主题数量virtualenv
1条回答
网友
1楼 · 发布于 2024-05-15 11:16:52

如果可以导入package_name,那么就可以确定安装包的目录(package_dir),从而确定主题目录的位置。你知道吗

import os
import package_name

package_dir = os.path.dirname(package_name.__file__)
theme_dir = os.path.join(package_dir, 'themes')

相关问题 更多 >