Python setuptools无法在用户配置中安装数据文件

2024-09-28 23:41:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我在子目录中有一组sql文件,我希望从包中安装这些文件。你知道吗

project\
thetask\
    __init__.py
    MainThing.py
sql\
    foo\thingone.sql
    foo\thingtwo.sql
    bar\thingone.sql
    bar\thingtwo.sql
README.md
MANIFEST.in

我的MANIFEST.in只包含recursive-include sql *.sql。你知道吗

我的setup.py尝试在appdirs找到的user_config_dir中安装文件。你知道吗

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

我希望看到的所有文件都在.zip包的sql目录中。我哪里出错了?你知道吗

UPDATE:我尝试使用特定的sql文件,而不是data_files中的通配符,这消除了错误,但没有安装AppData\\Local中的任何文件。这有点令人沮丧。你知道吗


Tags: install文件pyimportsqldatafoolocal