2017-02-16 3 views
2

웹 서비스를 제공하기 위해 체리 피 & flaskful을 사용하는 간단한 응용 프로그램 (단지 하나의 .py 파일)이 있습니다. 내 개발 환경은 Windows입니다. 나는 파이썬 3.5.2를 사용하고 virtualenv를 만들고 사용하여 프로젝트에서 작업한다.파이썬 응용 프로그램 용 rpm을 만드는 방법

Linux 시스템에 배포해야 할 필요가 있습니다. Linux 머신에 설치하여 실행할 수 있도록이 "RPM"을 작성하라는 요청을 받았습니다.

나는 인터넷 검색 및 문서의 여러 조각을 읽고 :

하지만 난에이를 배포하기 위해 수행해야 할 단계에 매우 불분명 해요 Linux 시스템. 모든 도움을 미리 보내 주셔서 감사합니다.

+0

모든 Linux 시스템이 RPM을 사용하는 것은 아닙니다. 'requirements.txt' 파일의 문제점은 무엇입니까? –

+0

CentOS 용 RPM이 필요합니다. – Sam

답변

2

tree 명령에 의해 미니 데모 구조 출력은 color_print 디렉토리를 변경할 필요가 없습니다 데모

from setuptools import setup 

setup(name='color_print', 
    version='0.1', 
    description='Color String', 
    url='http://github/xxxx/color_print/', 
    author='Joe Bob', 
    author_email='[email protected]', 
    license='MIT', 
    packages=['color_print'], 
    zip_safe=False) 

에 대한 예를 setup.py 패키지 이름과 디렉토리 여기

. 
├── color_print 
│   ├── color_print.py 
│   └── __init__.py 
├── __init__.py 
└── setup.py 

입니다 이 하나의 명령을 실행하여 RPM을 작성하십시오.

python setup.py bdist_rpm 
현실에서

-bash-4.1$ find . -name "*.spec" 
./build/bdist.linux-x86_64/rpm/SPECS/color_print.spec 
-bash-4.1$ find . -name "*.rpm" 
./dist/color_print-0.1-1.noarch.rpm 
./dist/color_print-0.1-1.src.rpm 

, 당신은 확실히 수동 사양 파일을 수정해야합니다 :

여기 출력, 그것은 쉬운 것입니다. 실행

rpmbuild -ba ./build/bdist.linux-x86_64/rpm/SPECS/color_print.spec 
+0

고마워요! 위에 설명 된 단계를 시도하기 전에 또 다른 질문이 있습니다. rpm을 이런 식으로 만들겠습니까? 또한 대상 시스템에 Python의 올바른 버전을 설치 하시겠습니까? 이 방법이 필요합니다 ... CentOS 대상 시스템에 Python 3.5.2를 설치하고 설치할 수있는 방법이 없습니다. 이전 버전의 Python을 사용했을 가능성이 있습니다. 그러나 응용 프로그램이 올바른 버전의 Python 실행 파일을 가져와야하기 때문에 고통 스럽습니다. – Sam

+0

@sam, 사용중인 centos의 버전을 확인하려면'cat/etc/redhat.release'를 실행하십시오. 버전 7 인 경우'sudo yum install -y python35u python35u-libs python35u-devel python35u-pip'를 실행하려면이 옵션에 대해 시스템 관리자에게 문의해야합니다. 그렇지 않은 경우 옵션이 제한됩니다. – Gang

+0

@sam, 다음은 virtualenv'https : // www.alexhudson.com/2013/05/24/packaging-a-virtualenv-really-not-relocatable /'에서 빌드 rpm에 대한 주석입니다. virtualenv의 전체 아이디어는 반대입니다 yum/rpm 패키지 시스템. centos에서 코드를 수정할 수 있습니까? – Gang