我需要打包一堆html / css / etc.文件作为包:让我们称之为'主题'。我正在这样做,所以我可以为几个/任意数量的应用程序提供这些可用的交叉应用程序。
我的模块是WHEREEVER / virtualenv / lib / pythonVERSION / site-packages / package_name。
所有'主题'都在package_name中名为'themes'的文件夹下
我不需要将这些主题作为模块本身导入,我只需要提及它们在文件系统中的位置,我不确定协议是什么。我可以找到那条路径并在需要时传递它吗?我只需要知道,无论安装包,我都可以在该包中找到一个目录并阅读其中的内容。
我在猜测,“是的”答案很简单但是如何解决这个问题对我来说并不是很清楚,或者我是否有更好的方式不知道。任何意见都赞赏。
一些背景知识:
我正在尝试为flask-fleem创建一个模块加载器:
https://github.com/thrisp/fleem
编辑:
现在对我有用的答案是从包init文件中导出一个常量:
PACKAGE_THEMES = os.path.join(os.path.dirname(os.path.abspath(__ file__)),'themes')
改进和/或更好的解决方案。
答案 0 :(得分:1)
如果您可以导入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')