我的包树看起来像这样:(还有一些不相关的文件)
- setup.py
- MANIFEST.in
- mydir
|
- file.py
- file.json
setup.py:
from distutils.core import setup
setup(
name = 'mydir',
packages = ['mydir'],
version = '1.2.2',
description = 'desc',
author = 'my name',
author_email = 'my@email.com',
url = 'https://github.com/myname/mydir',
download_url = 'https://github.com/myname/mydir/archive/1.2.2.tar.gz',
keywords = ['key1', 'key2'],
classifiers = [],
)
当MANIFEST.in
文件为空时,json不包含在dist文件中
所以我已经将json文件添加到MANIFEST.in
,所以它现在只包含:
include mydir/file.json
当我执行python setup.py sdist
命令时,自动生成的MANIFEST
文件包含所有必需的文件,包括file.json
。
但是,当我尝试使用pip
安装我的软件包时,出现以下错误:
error: can't copy 'file.json': doesn't exist or not a regular file
答案 0 :(得分:1)
知道了。
已将setup.py
更改为使用from setuptools import setup, find_packages
而非distutils.core
同时将include_package_data = True,
添加到setup.py
:
setup(
...
include_package_data = True,
...
)
与MANIFEST.in
中的include一起,按预期将json文件提取到目标目录。