[python] Python egg 파일을 만드는 방법

Python의 달걀 파일에 대한 질문이 있습니다.

패키지별로 구성된 많은 Python 코드가 있으며 계란 파일을 만들려고합니다. 지침을 따르고 있지만 매우 일반적입니다.

그에 따르면 setup.py 파일이 필요한 것 같습니다.

  1. setup.py 파일에 무엇을 넣고 어디에 있어야하는지 알려주시겠습니까?
  2. setup.py를 만든 다음 계란 파일을 얻기 위해 “setup.py bdist_egg”를 시작하는 것으로 충분하다고 생각합니다. 확인해 주시겠습니까?
  3. .pyc 파일 만 egg 파일에 포함 할 수 있습니까?
  4. .egg 파일이 있으면 압축을 풀지 않고 코드를 시작할 수 java -jar <jar file>있습니까?



답변

잘못된 문서를 읽고 있습니다. 당신은 이것을 원합니다 : https://setuptools.readthedocs.io/en/latest/setuptools.html#develop-deploy-the-project-source-in-development-mode

  1. setup.py 생성은 여기 Python의 표준 라이브러리 문서에있는 distutils 문서에서 다룹니다 . (파이썬 계란에 대한) 가장 큰 차이점은 당신입니다 import setup에서 setuptools하지 distutils.

  2. 네. 맞아야합니다.

  3. 나는 그렇게 생각하지 않는다. pyc파일은 버전 및 플랫폼에 따라 다를 수 있습니다. 계란을 열고 (그냥 zip 파일이어야 함) .py파일을 남기는 .pyc파일을 삭제할 수 있지만 권장되지는 않습니다.

  4. 잘 모르겠습니다. 그것은 “개발 모드”일 수 있습니다. 아니면 “py2exe”또는 “py2app”모드를 찾고 있습니까?


답변

# 4의 경우 앱의 jar 파일로 Java를 시작하는 가장 가까운 것은 Python 2.6의 새로운 기능, 실행 가능한 zip 파일 및 디렉토리 입니다.

python myapp.zip

여기서 myapp.zip은 __main__.py실행할 스크립트 파일로 실행 되는 파일을 포함하는 zip 입니다. 패키지 종속성도 파일에 포함될 수 있습니다.

__main__.py
mypackage/__init__.py
mypackage/someliblibfile.py

달걀을 실행할 수도 있지만 주문은 그다지 좋지 않습니다.

# Bourn Shell and derivatives (Linux/OSX/Unix)
PYTHONPATH=myapp.egg python -m myapp
rem Windows
set PYTHONPATH=myapp.egg
python -m myapp

이것은 myapp.egg를 Python 경로에 놓고 -m 인수를 사용하여 모듈을 실행합니다. myapp.egg는 다음과 같습니다.

myapp/__init__.py
myapp/somelibfile.py

그리고 파이썬이 실행됩니다 __init__.py( __file__=='__main__'명령 줄 사용을 위해 앱에서 확인해야 합니다).

Egg 파일은 단지 zip 파일이므로 __main__.pyzip 도구를 사용하여 계란 에 추가 python myapp.egg하고 PYTHONPATH 환경 변수가 설정된 위의 주문 대신 Python 2.6에서 실행 가능하게 만들고 실행할 수 있습니다.

shebang으로 직접 실행 가능하게 만드는 방법을 포함하여 실행 가능한 zip 파일에 대한 자세한 내용 은 주제에 대한 Michael Foord의 블로그 게시물에서 찾을 수 있습니다 .


답변

지금은 달걀 대신 파이썬 바퀴 를 사용 하여 배포 해야한다고 생각합니다 .

바퀴는 파이썬 배포의 새로운 표준이며 계란을 대체하기위한 것입니다. 지원은 pip> = 1.4 및 setuptools> = 0.8에서 제공됩니다.


답변