Hi Hi

'PyPI'에 해당되는 글 1건

  1. 파이썬(python) - 모듈함수 만들기

파이썬(python) - 모듈함수 만들기

 

함수 모듈

모든 모듈은 여러분의 코드를 공유하기 쉽게 구조화 합니다.
배포 유틸리티는 모듈을 전 세계에 공유할 수 있게 해줍니다.

모듈 : 파이썬 코드가 들어 있는 텍스트 파일,  파일 이름이 .py 확장자로 끝나기만 하면 된다.

필요한 함수 test.py 파일로 저장
def print_lol(the_list):
   for each_item in the_list:
     if isinstance (each_item, list):
        print_lol(each_item)
   
    else:
       print(each_item)


def print_lol(the_list,indent=False, level=0):
    for each_item in the_list:
            if isinstance (each_item, list):
                    print_lol(each_item, indent, level+1)
                   
            else:
                if indent:
                    for tab_stop in range(level):
                        print("\t",end='')
                print(each_item)
 import nester
  
movies = ["The Holy Grail", 1975, "Tery jones & Terry Gilliam", 91,["Graham Chapman",["Michael Palin", "John Cleese", "Terry Cilliam", "Eric Idle","Terry Jonse"]]]
names = ['john', 'Eric',['Cleese','Idle'],'Michael',['Palin']]
nester.print_lol(names,True)

PyPI(Python package index, 파이썬 패키지 인덱스)는 인터넷에서 써드파티 파이썬 모듈을 제공하는 중앙 리포지토리 이다.


모듈 배포 준비

새로 만든 모듈 공유하기 위해서 배포할 준비를 해야 한다.
유틸리티는 파이썬에서 모듈을 빌드하고, 패키지를 만들고, 배포할 수 있게 해주는 일련의 파일을 말한다.

1. 모듈을 위한 폴더를 만든다.

2. 새로 만든 폴더에 setup.py 라는 파일을 만든다.

from distutils.core import setup
setup(
    name = ' ',
    version = '1.0.0',
    py_modules = [''],
    author = '',
    url = '',
    description = '',
    )


3. 배포 패키지를 만든다.
- 배포 패키지를 위한 모든 지식을 갖고 있다. 터미널 창이나 도스 창을 열어 test.py 폴더로 이동한 후 python3 setup.py sdist를 입력한다.
( 윈도우에서는 python3(설치 경로)\python.exe )




4, 배포 패키지를 여러분의 환경에 설치 한다.
터미널 창이나 토스 창에서 sudo python3 setup.py install 라고 입력한다.



로컬에 모듈이 설치 되었습니다.


코드를 PyPI에 등록하기

함수로 정의한 코드는 모듈에 들어가 있고,  배포 패키지를 만들어 컴퓨터에 설치 했다. 배포 페키지를 PyPI에 업로드 하기위해서는 PyPI에 등록하고 업로드를 하는 두 가지 일을 명령행에서 진행해야 한다.


http://pypi.python.org/pypi
사이트를 가입한다.

PGP Key가 없어도 상관없다.


 

메일이 한통 도착한다.
URL을 따라 들어오면 '동의' 을 클릭하면 회원가입이 완료 되었다.



' c:\Python32\python.exe setup.py register ' 를 입력한다.

1.use your existing login 을 선택한다. -> 아이디와 비밀번호를 입력한다. -> 아이디와 비밀번호를입력하고 저장하면 입력이 업로드 준비는 끝난다.

 

 


' c:\Python32\python.exe setup.py sdist upload ' 입력하여 업로드 한다.



모듈이 PyPI에 업로드 되었다. 


모듈을 사용하려면 임포트를 해야한다.


모듈을 사용하려면 프로그램이나 IDLE셸에 임포트 하면 된다.

import nester//  파이썬 키워드인 import를 사용한다. 그리고 모듈이름을 지정한다.

※ 모듈 이름을 지정할 때 파일 확장자 .py 를 쓰지 않는다.


파이썬 모듈은 네임스페스를 만든다.

네임스페이스 :  명칭이 충돌하는 것을 방지하기 위해 명칭들을 저장해 놓는 장소
파이썬의 모든 코드는 네임스페이스로 연결되어 있다.
파이썬 프로그램은 __main__이라는 네임스페이스에 연결되어 있다. 코드를 모듈에 넣으면 파이썬은 그 모듈의 코드를 모듈 이름과 같은 네임스페이스에 넣는다.

네임스페이스 형태
'모듈 이름. 함수 이름()'

nester.print_lol() // 점이 모듈 네임스페이스와 함수 이름을 구분해 줍니다.

>>> import nester
>>> cast = ['palin', 'cleese', 'idle']
>>> print_lol(cast)
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    print_lol(cast)
NameError: name 'print_lol' is not defined

>>> nester.print_lol(cast)
palin
cleese
idle