У меня есть набор файлов sql в подкаталогах, которые я хочу установить из своего пакета.
project\
thetask\
__init__.py
MainThing.py
sql\
foo\thingone.sql
foo\thingtwo.sql
bar\thingone.sql
bar\thingtwo.sql
README.md
MANIFEST.in
My MANIFEST.in
содержит только recursive-include sql *.sql
.
My setup.py
пытается установить файлы в user_config_dir
, найденном appdirs
.
import setuptools
import os
from appdirs import AppDirs
APP_DIRS = AppDirs("table_builder", "thetask")
def long_desc(path_to_md):
"""
Use markdown for description on devpi server.
"""
with open(path_to_md, "r") as _fh:
return _fh.read()
setuptools.setup(
name="mything-thetask",
version="0.1a",
description="Tools for building TheTask tables.",
long_description=long_desc("README.md"),
long_description_content_type="text/markdown",
author="Someguy SomeGuysLastName",
author_email="Someguy.SomeGuysLastName@mything.com",
license="Proprietary",
install_requires=[
"xlrd",
"pyodbc",
"appdirs",
],
include_package_data=True,
packages=setuptools.find_packages(),
scripts=[
"foo.py",
"bar.py",
],
data_files=[
(APP_DIRS.user_config_dir, [
"sql\\foo\\*.sql",
"sql\\bar\\*.sql"
])
],
)
Каталог thetask\\table_builder
создается в моем каталоге AppData\\Local
, но install_data
завершается неудачно с:
running install_data
error: can't copy 'sql\foo\*.sql': doesn't exist or not a regular file
----------------------------------------
Command "c:\users\someguy\projects\testinstall\venv\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\someguy\\AppData\\Local\\Temp\\pip-install-bmlgs1fl\\mything-thetask\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\someguy\AppData\Local\Temp\pip-record-ia0ycbsc\install-record.txt --single-version-externally-managed --compile --install-headers c:\users\someguy\projects\testinstall\venv\include\site\python3.7\mything-thetask" failed with error code 1 in C:\Users\someguy\AppData\Local\Temp\pip-install-bmlgs1fl\mything-thetask\
command failed
Все файлы, которые я ожидаю увидеть, находятся в каталоге sql
в пакете .zip
.Где я иду не так?
UPDATE:
Я попытался использовать определенные файлы sql вместо подстановочного знака в data_files
, который избавился от ошибки, но не установил ни один из файлов в AppData\\Local
.Это немного расстраивает.