Więc robię pakiet setuptool.Zestaw narzędzi. Jak utworzyć pakiet zawierający dodatkowy folder danych i wszystkie foldery wewnątrz
Aby uwzględnić dodatkowe pliki danych w pakiecie, należy podać parametr data_file
w środku setup()
.
Kod Przykład:
datadir = os.path.join('share','data')
datafiles = [(datadir, [f for f in glob.glob(os.path.join(datadir, '*'))])]
import metainfo # a file with relevant information
setup(
name = 'yourpackage',
version = metainfo.version,
maintainer = metainfo.maintainer,
maintainer_email = metainfo.maintainer_email,
author = metainfo.authors,
author_email = metainfo.authors,
description = metainfo.description,
keywords = metainfo.keywords,
long_description = metainfo.long_description,
# package installation
packages = find_packages('src'),
package_dir = package_dir,
data_files = datafiles,
}
datafile
zmienna w tym przykładzie będzie zawierać dane, takie jak ten
[('share/data', ['share/data/addon.xml.tmplt', 'share/data/default.py.tmplt'])]
Jednak mój przykład nie robi listę folderów i plików zawierających rekurencyjnie.
Mam funkcję, która pobiera jako parametr FOLDER_PATH i zwraca listę krotki potrzebne:
[
('share/data', ['share/data/addon.xml.tmplt', 'share/data/default.py.tmplt']),
('share/data/inside', ['share/data/inside/file.iside', 'share/data/inside/file2.inside']),
.........
]
możesz użyć '[(root, glob.glob (root /**/*.*, rekursywny = True)]' – warownia1
@ warownia1: nie, ponieważ to nie tworzy '' (directorypath, list_files_in_directory) 'krotek * na katalog *. –