2017-03-13 2 views
0

파이썬 스크립트 MyScript.py이 있습니다. 나는 python MyScript.py [options]을 사용하여 실행합니다. 그러나 나는 그것으로부터 rpm 패키지를 만들고 싶다. 그래서 setup.py을 만들고 python setup.py bdist_rpm을 사용하여 rpm 패키지를 만들었습니다. 이를 위해 저는 아래와 같은 파일 구조를 변경 :python 소스의 rpm 패키지

- MyScript 
    - __init__.py 
- setup.py 

setup.py : 나는 python setup.py bdist_rpm을 실행하면

from distutils.core import setup 
setup(name='MyScript', 
     version='0.0.1', 
     author='ABC XYZ', 
     author_email='[email protected]', 
     packages=['MyScript'] 
    ) 

, 나는 2 개 RPM 파일 (noarch.rpm, src.rpm) 1 개 tar.gz 파일을 얻을 자동으로 생성되는 dist 폴더 아래에 있습니다. 하지만 rpm -i 파일을 norach.rpm 파일에 사용하면 패키지가 설치되어 있다고 표시되지만 MyScript 명령을 bash에서 실행하려고하면 패키지를 사용할 수 없습니다. 내가 여기서 뭔가 잘못하고있는거야? 그렇다면 안내해주십시오. 나는 포장에 초보자 다.

답변

2

예, 당신이 뭔가를 잘못 :)하고있는

당신이 RPM을 생성하고 실행하는 데 RPM을 설치하는 실행 파일을 노출 것을 의미하지 않는 MyScript 패키지를 제공 사실 (즉, $ MyScript .... 또한하려면 패키지와 상호 작용할 수있는 실행 파일을 만들려면 setup.py 파일에

을 제공해야합니다. 진입 점은 코드의 함수 경로에 설치 될 스크립트를 거의 매핑합니다. 실행합니다.

som 추가 이렇게 ething : FUNC_NAME가 호출하는 모듈의 __init__MyScript 패키지 함수의 이름

setup(name='MyScript', 
     version='0.0.1', 
     author='ABC XYZ', 
     author_email='[email protected]', 
     packages=['MyScript'], 
     entry_point={ 
      'console_scripts': [ 
       'MyScript = MyScript.__init__:FUNC_NAME' 
      ] 
     } 
) 

한다. console_script의

(나중에 참조)의 일반적인 형식은 다음

'name_of_executable = package.module:function_to_execute' 

예는 여기에서 찾을 수있다 : https://chriswarrick.com/blog/2014/09/15/python-apps-the-right-way-entry_points-and-scripts/

관련 문제