티스토리 뷰
setup.py 파일 만들기
from distutils.core import setup setup( name = 'nester', version = '1.0.0', py_modules = ['nester'], author = 'misun', author_email = 'xxx@gamil.com', url = 'http://come2misun.tistory.com', description = 'test', )
sdist
배포 패키지 만들기
D:\headfirstpython\nester>python setup.py sdist running sdist running check warning: sdist: manifest template 'MANIFEST.in' does not exist (using default file list) warning: sdist: standard file not found: should have one of README, README.txt writing manifest file 'MANIFEST' creating nester-1.0.0 making hard links in nester-1.0.0... hard linking nester.py -> nester-1.0.0 hard linking setup.py -> nester-1.0.0 creating 'dist\nester-1.0.0.zip' and adding 'nester-1.0.0' to it adding 'nester-1.0.0\nester.py' adding 'nester-1.0.0\PKG-INFO' adding 'nester-1.0.0\setup.py' removing 'nester-1.0.0' (and everything under it)
install
배포 패키지 설치하기
D:\headfirstpython\nester>python setup.py install running install running build running build_py creating build creating build\lib copying nester.py -> build\lib running install_lib copying build\lib\nester.py -> C:\Users\misun\AppData\Local\Programs\Python\Python35-32\Lib\site-packages byte-compiling C:\Users\misun\AppData\Local\Programs\Python\Python35-32\Lib\site-packages\nester.py to nester.cpython-35.pyc running install_egg_info Writing C:\Users\misun\AppData\Local\Programs\Python\Python35-32\Lib\site-packages\nester-1.0.0-py3.5.egg-info
모듈 임포트하여 실행하기
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [MSC v.1900 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> import nester >>> cast = ['Palin', 'Cleese', 'Idle', 'Jones', 'Giliam', 'Chapman'] >>> print(cast) ['Palin', 'Cleese', 'Idle', 'Jones', 'Giliam', 'Chapman'] >>> print_lol(cast) Traceback (most recent call last): File "", line 1, in print_lol(cast) NameError: name 'print_lol' is not defined >>> nester.print_lol(cast) Palin Cleese Idle Jones Giliam Chapman >>>
모듈이름.함수이름()
모듈에 있는 코드는 네임스페이스와 연결된다.기본적으로 __main__
이라는 네임스페이스와 연결
NameError: name 'print_lol' is not defined
- __main__
- 파이썬 기본 네임스페이스
- __builtins__
- 내장함수 네임스페이스
※내장함수는 일반적인 문제에 대해 일반적인 해결책을 제시
인자를 이용해서 행위 제어하기
ver 1.2.0 : 들여쓰기 기능 추가
ver 1.3.0 : 들여쓰기 기능 on/off 기능 추가
비슷한 모듈을 여러개 만드는 것은 낭비! 유지보수도 끔직해질 뿐
indent=False
,level =0
- 선택적인자
- 함수 인자에 기본값을 지정하면 그 인자는 선택적 인자가 된다.
버전별 기능 관리시 하위버전의 호환성을 유지한다.
댓글