包括Python包内的文件夹和文件

时间:2019-03-25 01:34:49

标签: python-3.x python-packaging

我正在尝试制作python软件包,当我尝试从Github here安装库时,已经完成了大多数设置,它将安装除名为champs的文件夹以外的所有内容它是文件

这是我的文件目录结构

LeagueYue
   champs
      -Lname_num.json
      -Lname_Uname.json
      -num_Uname.json
   -__init__.py
   -champion_files.py
   -external.py
   -match.py
   -rank.py
   -status.py
   -summoner.py
-requirements.txt
-setup.py

除文件夹和champs内的文件外,所有文件均已安装

2 个答案:

答案 0 :(得分:2)

question的答案如下:

有两种添加静态文件的方法:

1)Include_package_data = True + MANIFEST.in

与setup.py位于同一目录中的MANIFEST.in文件,如下所示:

include src/static/*
include src/Potato/*.txt

2)setup.py中的Package_data

package_data = {
    'static': ['*'],
    'Potato': ['*.txt']
}

指定setup.py.

中的文件

答案 1 :(得分:1)

其中两个文件可能是在运行时从num_Uname.json派生的,但这很好。

我还没有在https://github.com/CharmingMother/LeagueLib/blob/async/setup.py中看到data_files指令

Thomas Cokelaer建议使用类似

的表达式
datafiles = [(datadir, list(glob.glob(os.path.join(datadir, '*'))))]

然后

setup(
    ...
    data_files = datafiles,
)

http://thomas-cokelaer.info/blog/2012/03/how-to-embedded-data-files-in-python-using-setuptools/

在您的情况下,这可能很简单:

data_files = [('', ['champs/num_Uname.json'])],

Martin Thoma解释说,您应该使用How to read a (static) file from inside a Python package?中的filepath = pkg_resources.resource_filename(__name__, path) 来访问它们

当我阅读精美的Manual时,这个setup.cfg替代表面:

[options.data_files]
...
data = data/img/logo.png, data/svg/icon.svg

建议像. = champs/num_Uname.jsonchamps = num_Uname.json这样的行