예를 들어 만들고자 하는 패키지의 구조가 다음과 같을때
setup.py
mypkg/
__init__.py
module.py
data/
table.dat
spoons.dat
라고 할때
__init__.py 는 __all__=["module"]
module.py 는 def main():print "good"
setup.py 는 아래와 같습니다.
from distutils.core import setup, Extension
setup(name='mypkg',
version='1.0',
author='saehwan kim',
author_email='grap...@gmail.com',
packages=['mypkg'],
package_dir={'mapkg':'mypkg'},
package_data={'mypkg': ['data/*']})
그리고 배포 package 생성을 위해 python setup.py sdist 라고 명령어를 실행하였습니다. 이 때 dist 폴
더에 mypkg-1.0.tar.gz 라고 압축 파일이 생성되나 이것을 풀어보면 그 안에 data폴더가 없습니다. 곧 추가적인 데
이터가 포함되지 않은채 압축되어 있습니다.
추가 데이터를 포함해서 package를 압축하고 싶은데 어떻게 해야 하나요..
꼭 좀 알려주세요 ㅜㅜ
제가 window 7, 파이썬 3.2.1 버젼에서 테스트를 해봤는데 문제 없이 dat 파일 까지 모두 압축이 됩니다.
테스트 환경이 어떻게 되나요?
아니면 menifest 템플릿을 추가해 보셔서 테스트 해보시기 바랍니다.
setup.py가 있는 디렉토리에서 MENIFEST.in 라는 파일을 만들고 아래 내용을 넣으세요.
setup.py
mypkg\__init__.py
mypkg\module.py
include *.dat
distutil이 동작할 때 *.dat를 포함시키라는 의미입니다. (하지만 이 템플릿을 적지 않아도 파이썬에서 setup.py
를 참고해 자동으로 MENIFEST 만들어 줍니다. 단지 오류가 정확히 어디서 발생하는지 알아 보기 위해서 테스트 해보시기 바랍
니다.)
감사합니다.
On Jul 26, 1:25 pm, graphy21 <graph...@gmail.com> wrote:
> distutils 모듈을 사용하여 배포 패키지를 생성하려고 합니다. 그런데 패키지 내의 추가 데이터를 어떻게 하면 패키지 안에
> 넣을 수 있는지 모르겠습니다.
>
> 예를 들어 만들고자 하는 패키지의 구조가 다음과 같을때
>
> setup.py
> mypkg/
> __init__.py
> module.py
> data/
> table.dat
> spoons.dat
>
> 라고 할때
> __init__.py 는 __all__=["module"]
> module.py 는 def main():print "good"
>
> setup.py 는 아래와 같습니다.
>
> from distutils.core import setup, Extension
>
> setup(name='mypkg',
> version='1.0',
> author='saehwan kim',
> author_email='graph...@gmail.com',
답장 주셔서 정말 감사드립니다.
제 작업 환경은 Red Hat Enterprise Linux Server release 6.0 에 ActivePython
2.6.6.18 과
Fedora release 13 에 Python 2.6.4 입니다. 두 군데서 확인해 보았습니다.
선생님께서 알려주신데로 MANIFEST.in 을 만들어서
setup.py
mypkg/__init__.py
mypkg/module.py
include mypkg/data/*.dat
을 넣어준다음에 실행했더니 package 안에 데이터가 추가가 되었습니다.
그런데 궁금한 점이.. python setup.py sdist 를 실행할때 아래와 같은 메시지가 뜨는데요.
meta-data랑 README에 대한 warning이 뜨는것을 알겠지만 MANIFEST.in의 1~3 번째 줄까지
unknown action이라는게 이해가 되질 않습니다. 왜 그런걸까요?
running sdist
warning: sdist: missing required meta-data: url
warning: sdist: standard file not found: should have one of README,
README.txt
reading manifest template 'MANIFEST.in'
warning: sdist: MANIFEST.in, line 1: unknown action 'setup.py'
warning: sdist: MANIFEST.in, line 2: unknown action 'mypkg/
__init__.py'
warning: sdist: MANIFEST.in, line 3: unknown action 'mypkg/module.py'
도움을 주셔서 감사드립니다.
김세환 드림
아마도 MENIFEST 문법이 바꿔서 그런것 같습니다. 3.1 버젼 부터 MENIFEST 문법이 많이 바뀐걸로 알고 있습니다.
1~3번 라인이 없어도 잘 동작할 것 같습니다.
감사합니다.
> > > 꼭 좀 알려주세요 ㅜㅜ- Hide quoted text -
>
> - Show quoted text -