Python egg 파일을 만드는 방법


91

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

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

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

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

그러면 계란 대신 무엇을 사용해야합니까? 다음은 계란에 대한 질문입니다. stackoverflow.com/questions/14902732/…
Green

@YauhenYakimovich : 해당 링크는 이제 파킹 된 스팸 도메인입니다. packaging.python.org/en/latest/wheel_egg 를 사용하여 편집 할 가치가 있습니까?
Chris Adams

답변:


74

잘못된 문서를 읽고 있습니다. 당신은 이것을 원합니다 : 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"모드를 찾고 있습니까?


51
+1 : .pyc 파일을 포함하지 마십시오. 그들은 완전히 혼란 스럽습니다. 우연히 윈도우 .pyc 파일을 리눅스 박스에 복사했고 가장 혼란스러운 오류 추적 메시지가있었습니다. 원래 Windows 파일 이름이있는 파일 이름 때문입니다. 프로덕션 서버에서 Windows 파일 이름을 보는 것은 끔찍했습니다.
S.Lott

단지 사용 pyInstaller 중에
Nickpick

30

# 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의 블로그 게시물에서 찾을 수 있습니다 .


또한 하나의 가상 환경을 사용할 수 있습니다 guide.python-distribute.org/installation.html#upgrading
Yauhen Yakimovich

10

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

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


2
내가 알 수있는 한 바퀴를 가져올 수 없습니다. 가끔은 스크립트를 달걀과 함께 배포하여 이식성을 높이고 싶습니다.
Gillespie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.