Je veux inclure le ./static/data.txt
à setuptools
, voici mon code:
# setup.py
import os,glob
from setuptools import setup,find_packages
setup(
name = "PotatoProject",
version = "0.1.1",
author = "Master Splinter",
author_email = "[email protected]",
description = ("The potatoproject!"),
url = 'http://www.google.com',
license = "BSD",
# adding packages
packages=find_packages('src'),
package_dir = {'':'src'},
# trying to add files...
include_package_data = True,
package_data = {
'': ['*.txt'],
'': ['static/*.txt'],
'static': ['*.txt'],
},
scripts=['src/startPotato'],
classifiers=[
"Development Status :: 3 - Alpha",
"Topic :: Utilities",
"License :: OSI Approved :: BSD License",
],
)
Le système de fichiers:
.
├── setup.py
└── src
├── distutils_setup.py
├── Potato
│ ├── __init__.py
│ ├── potatoData.txt
│ └── printer.py
├── startPotato
├── static
│ └── data.txt
└── Tomato
├── big.py
└── __init__.py
la sortie lors de l'exécution: python setup.py sdist
running sdist
running Egg_info
creating src/PotatoProject.Egg-info
writing src/PotatoProject.Egg-info/PKG-INFO
writing top-level names to src/PotatoProject.Egg-info/top_level.txt
writing dependency_links to src/PotatoProject.Egg-info/dependency_links.txt
writing manifest file 'src/PotatoProject.Egg-info/SOURCES.txt'
reading manifest file 'src/PotatoProject.Egg-info/SOURCES.txt'
writing manifest file 'src/PotatoProject.Egg-info/SOURCES.txt'
warning: sdist: standard file not found: should have one of README, README.txt
creating PotatoProject-0.1.1
creating PotatoProject-0.1.1/src
creating PotatoProject-0.1.1/src/Potato
creating PotatoProject-0.1.1/src/PotatoProject.Egg-info
creating PotatoProject-0.1.1/src/Tomato
making hard links in PotatoProject-0.1.1...
hard linking setup.py -> PotatoProject-0.1.1
hard linking src/startPotato -> PotatoProject-0.1.1/src
hard linking src/Potato/__init__.py -> PotatoProject-0.1.1/src/Potato
hard linking src/Potato/printer.py -> PotatoProject-0.1.1/src/Potato
hard linking src/PotatoProject.Egg-info/PKG-INFO -> PotatoProject-0.1.1/src/PotatoProject.Egg-info
hard linking src/PotatoProject.Egg-info/SOURCES.txt -> PotatoProject-0.1.1/src/PotatoProject.Egg-info
hard linking src/PotatoProject.Egg-info/dependency_links.txt -> PotatoProject-0.1.1/src/PotatoProject.Egg-info
hard linking src/PotatoProject.Egg-info/top_level.txt -> PotatoProject-0.1.1/src/PotatoProject.Egg-info
hard linking src/Tomato/__init__.py -> PotatoProject-0.1.1/src/Tomato
hard linking src/Tomato/big.py -> PotatoProject-0.1.1/src/Tomato
Writing PotatoProject-0.1.1/setup.cfg
creating dist
Creating tar archive
removing 'PotatoProject-0.1.1' (and everything under it)
et aucun txt ajouté! Non static/data.txt
ni Potato/potatoData.txt
...
Qu'est-ce que je rate?!
Comme indiqué dans les commentaires, il existe 2 façons d'ajouter les fichiers statiques:
UNE MANIFEST.in
fichier dans le même répertoire que setup.py
, qui ressemble à ceci:
include src/static/*
include src/Potato/*.txt
Avec le include_package_data = True
dans le setup.py
.
package_data = {
'static': ['*'],
'Potato': ['*.txt']
}
Spécifiez les fichiers à l'intérieur du setup.py
.
include_package_data
et package_data
dans setup.py
.include_package_data
annulera le package_data
information.
https://setuptools.readthedocs.io/en/latest/setuptools.html#including-data-files
Inclure tous les fichiers récursivement:
recursive-include project_name/templates *
recursive-include project_name/static *
où project_name
est un dossier dans la même ligne où vous avez setup.py
fichier.
Selon les documents, il existe trois façons pour inclure les fichiers de données du package. Vous avez deux paquets: pomme de terre et tomate. Le répertoire statique ne se trouve dans aucun de ces packages, c'est pourquoi votre dictionnaire package_data dans setup.py ne fonctionnait pas. L'option manifeste nécessite que include_package_data soit défini sur True dans setup.py. L'accès aux fichiers de données non-package peut se faire de la manière trouvée ici .
Utiliser suivant
packages = ['.','templates','static','docs'],
package_data={'templates':['*'],'static':['*'],'docs':['*'],},
Mettre cela ici car cela s'était perdu dans le commentaire comme décrit ici.
Comment inclure des fichiers statiques dans setuptools - python
Le problème principal est que vous ne pouvez pas avoir à la fois package_data et include_package_data = True
.