Python setuptools не может установить data_files в user_config_dir - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть набор файлов 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.Это немного расстраивает.

...