2013-11-07 2 views
2

Я настраиваю непрерывную систему доставки для проекта python, и я пытаюсь выяснить, как установить строку версии ENTIRE сборки проекта через egg_info.Python setuptools переопределить версию из командной строки

Я использую thinkworks GO, который имеет встроенную метку отслеживания версий GO_PIPELINE_LABEL. Я хотел бы вызвать команду build_tools egg building с этой версией в качестве аргумента, полностью переопределяющего версию в setup.py.

например:

GO_PIPELINE_LABEL='1.2.3.4' python setup.py egg_info --tag-build=$GO_PIPELINE_LABEL bdist_egg 

, кажется, приводит к

'dist/myproject-0.0.01.2.3.4-py2.7.egg' 

Он всегда кажется, Concat версии setup.py и командная строка один. Мой setup.py выглядит следующим образом:

import os 
from setuptools import setup, find_packages 
from setuptools.command.install import install 

ROOT_DIR = os.path.dirname(__file__) 
SOURCE_DIR = os.path.join(ROOT_DIR) 

# python setup.py egg_info -rb14 bdist_egg rotate -m.egg -k5 
# python setup.py egg_info --tag-build=1.2.3.4 bdist_egg 

version = '' 

setup(name='myproject', 
    version=version, 
    description='baa', 
    author='Me', 
    author_email='[email protected]', 
    packages=['submodule', 'another.submodule'], 
    package_data = { 
         '': ['*.xsd'], 
         }, 
    install_requires=['cmd2', 
        'dnspython', 
        'ordereddict', 
        'prettyprint', 
        'pycontrol', 
        'simplejson', 
        'suds', 
        'pyparsing<2.0.0', 
        'urllib3', 
        'lxml', 
        ] 
    ) 

Я попытался обнулением/удалением переменной версии в моем setup.py, но все, что я делаю, кажется, в результате конкатенации значений версии, и нуль, кажется, приравнивается к «0.0.0». Кто-нибудь знает, как я могу использовать setup_tools и установить строку версии?

Спасибо, K

ответ

-1

Одним из вариантов является разобрать вариант и установить версию, как показано ниже как раз перед вызовом установки

from optparse import OptionParser 
parser = OptionParser("") 
parser.add_option("--tag-build", dest="version") 
(info,a)=parser.parse_args() 
version = info.version 
print "version is ", version 
+0

Это не работает, и будет нарушать easy_install setup.py скрипт. –

Смежные вопросы