python/Python

python setup.py 내 scripts vs entry_points(console_scripts) (window에서 scripts 변수가 안통하는 문제)

안희영 2022. 6. 27. 17:41

문제 : Linux 환경에서 setup.py  내부 scripts 변수를 통해 binary 파일을 시스템에 저장해두고 썼는데, 윈도우에서는 이 방법이 먹히질 않았다.

 

해결방안

scripts 변수 말고 entry_points를 활용해야 함.

주의할 것은 linux에서는 bin 파일로 시스템에 저장해 둘 수 있었지만,

window 에서는 .py 파일로 가능함.

 

예를 들어 Linux 환경에서는 아래 코드와 같이 ICIscore-test 라는 bin 파일을 활용하여 시스템에 저장해둘 수 있었음.

setup(
    name='ICIscore',
    version=find_version('ICIscore/__init__.py'),
    packages=find_packages(exclude=['tests']),
    
	.............. 
	..............
	..............

    scripts=[
            'bin/ICIscore-test'
        ],

 

 

그러나 윈도우에서는 아래 코드와 같이 entry_points 변수를 활용해야 하며

bin 파일이 아닌 .py 파일을 만들어 (내부 코드도 호출할 수 있는 하나의 함수로 수정) 써야함.

 

setup(
    name='ICIscore',
    version=find_version('ICIscore/__init__.py'),
    packages=find_packages(exclude=['tests']),

	...................
	...................
	...................

    entry_points={
        'console_scripts': [
            'ICIscore-test=bin.ICIscoretest:test',
        ],
    },