Setuptools:从父目录

时间:2016-05-11 08:40:27

标签: python svn setuptools

在Python包中,我正在使用以下setup.cfg文件:

[egg_info]
tag_build = dev
tag_date = 1
tag_svn_revision = 1

但是,当我运行python setup.py sdist时,SVN修订版显示为-r0。这可能是因为我没有运行安装脚本的.svn目录;事实上我的树是

 main_dir/
   .svn/
   branches/
   trunk/
     setup.py
     setup.cfg

如何告诉setuptools在父目录中找到SVN修订号?我仍然想继续使用我的包版本号码。

2 个答案:

答案 0 :(得分:2)

如果您愿意安装其他软件包,可以通过其他方式解决-r0问题。自版本10以来,Setuptools不支持SVN元数据。该功能已移至setuptools_svn包。

答案 1 :(得分:1)

我目前的解决方案是合并this answer并手动构建版本(减去shell=True选项):

# Hat tip: https://stackoverflow.com/a/1501219/204634
import subprocess

def svnversion():
    p = subprocess.Popen("svnversion", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    (stdout, stderr) = p.communicate()
    return stdout

_version = '{}-{}'.format(my_pkg_version, svnversion())

虽然setup.cfg文件包含:

[egg_info]
tag_build = dev
tag_date = 1