已安装Python包的标准目录';s数据

已安装Python包的标准目录';s数据,python,Python,我正在开发一个使用外部git存储库数据的包。当它工作时,它首先克隆git存储库,然后将文件从它复制到其他位置 我应该将这个存储库(和其他非python文件)保存在文件系统中的什么位置?有什么标准的地方吗 当然,我可以使用站点包/目录来存放我的文件。但问题是,git存储库也可能包含python包,我不希望它们是可导入的 是否有某种方法可以专门从网站包/中排除某些文件夹?我想*。dist info文件夹被排除在外,我应该为我的包创建一个假的文件夹吗 多谢各位 将它们安装到站点软件包中软件包目录的子目

我正在开发一个使用外部git存储库数据的包。当它工作时,它首先克隆git存储库,然后将文件从它复制到其他位置

我应该将这个存储库(和其他非python文件)保存在文件系统中的什么位置?有什么标准的地方吗

当然,我可以使用
站点包/
目录来存放我的文件。但问题是,git存储库也可能包含python包,我不希望它们是可导入的

是否有某种方法可以专门从
网站包/
中排除某些文件夹?我想
*。dist info
文件夹被排除在外,我应该为我的包创建一个假的文件夹吗


多谢各位

将它们安装到
站点软件包中软件包目录的子目录中。如果子目录没有
\uuuu init\uuuuuupy.py
文件,或者如果它的名称包含破折号(-)或其他在Python标识符中无效的字符,则无法使用
import
语句导入它,也无法使用它下面的任何Python文件导入它


例如,如果包名为
mypackage
,则可以使用
站点包/mypackage/data files
作为存储数据的位置

首先,我不能确定它是否会存在于系统中。但如果我不知道smth,我仍然希望这些文件能够在重新启动后继续存在,因此
/tmp
不是一个很好的例子。
/tmp
将存在于所有GNU/Linux系统上。您使用的操作系统是什么?如果可能,我希望它位于virtualenv目录中。或者这是不常见的做法?我对这类事情没有太多经验。对于包特定的文件,可以使用smth(如$HOME)吗?对我来说,它似乎不必要地污染了系统。我正在使用Debian,是的,/tmp就在那里。那么Windows呢?我会说加粗,选择某个地方,然后让用户用参数或环境变量覆盖默认位置这就是为什么
。dist info
文件不可导入,不是因为某个地方有一些奇怪的排除,对吗?在顶层省略
\uuuu init\uuuu.py
似乎不能解决问题,因为当您这样做时,Python 3认为这是一个问题。另外,我也不能确定我的文件夹在顶层不会有
\uuuu init\uuuu.py
文件。尽管如此,添加
-
作为顶级目录的一部分是解决问题的一个非常有效的好方法。如果我的评论有效,请从答案中删除关于
\uuu init\uuuuuuuuuuuuuuy.py
的部分,我会接受它。@Mkunikov我没有建议从“顶级”中省略
\uuuuu init\uuuuuuuuuuuuy
。我建议从包目录的子目录中删除。您的包目录(
site packages/mypackage
在我的示例中)必须有一个
\uuuu init\uuuu.py
文件,否则它不是包。包目录的任何子目录(例如,
站点包/mypackage/datafiles
)都不能成为命名空间包。只搜索
sys.path
中的目录(例如
site packages
),而不搜索它们的任何子目录。只有在
sys.path
中的目录中找到的直接子目录才能成为名称空间包。是的,这绝对有意义。对不起,误会了。将非python源代码文件保存在包目录中仍然感觉有点难看,但我想这是我自己的问题。我接受答案,让我们在这里结束。非常感谢。