【发布时间】:2016-04-25 13:13:22
【问题描述】:
我正在尝试将 data_file 添加到 setup.py 项目。我可以使用来自/tmp/ 目录的文件,但不能从脚本的当前目录使用它:
from setuptools import setup, find_packages
import os
packages = find_packages("src")
foo_path = os.path.dirname(os.path.abspath(__file__)) + '/foo.dat'
print foo_path # file exists and there full absolute path is printed:
# '/home/loom/myapp/foo.dat'
setup(name='myapp',
version='0.2.0',
url='http://loom.st',
author='Loom',
author_email='admin@loom.st',
package_dir={'': 'src'},
packages=packages,
py_modules=['my_start'],
# 1. data_files=[('lib/python', [foo_path])],
# 2. data_files=[('lib/python', [/tmp/foo.dat])],
setup_cfg=True,
)
当1. 行未注释时,python setup.py bdist_rpm 失败并显示消息:
running install_data
error: can't copy '/home/loom/myapp/build/bdist.linux-x86_64/rpm/BUILD/myapp-0.2.0/foo.dat': doesn't exist or not a regular file
error: Bad exit status from /var/tmp/rpm-tmp.02mmV8 (%install)
当2. 行未注释时,构建完成并包含foo.dat(文件/tmp/foo.dat 存在)
为什么1. 行会导致错误以及如何避免?
【问题讨论】:
-
您是在 Windows 还是 *nix 下工作?尝试删除
/home/loom/myapp/foo.dat/中的尾随/而在/tmp/foo.dat它似乎是一个文件而不是一个目录 -
@linusg - 我正在研究 *nix,
tmp位于根目录中,并且文件/tmp/foo.dat存在。我会扩大问题,谢谢 -
嗯,好的,谢谢。请尝试我在评论中添加的内容。
-
如果
foo_path与安装文件位于同一目录中,可能会将其定义为"./foo.dat"?? -
@linusg -
error: can't copy './foo.dat': doesn't exist or not a regular file我从它开始。
标签: python setuptools setup.py