【发布时间】:2018-08-15 19:51:46
【问题描述】:
我的包树看起来像这样:(还有一些不相关的文件)
- 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 文件为空时,dist 文件中不包含 json。
所以我已经将 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
【问题讨论】:
-
你能发布你的 setup.py 文件吗?
-
@fasouto 已更新。谢谢
-
我认为缺少 include_package_data :)
-
@fasouto 你是对的,但仅此还不够,我不得不将用于
setup.py的库从distutils.core更改为setuptools,请参阅下面的解决方案 -
我想知道,如果你想在
file.py中使用file.json,那么获取文件路径的正确方法是什么?
标签: python setuptools distribute