2016-08-29 3 views
1

가 해결되지 않습니다setup.py console_scripts 진입 점은 내가 setup.py 다음 한 수입

from setuptools import setup 
from distutils.core import setup 
setup(
    name="foobar", 
    version="0.1.0", 
    author="Batman", 
    author_email="[email protected]", 
    packages = ["foobar"], 
    include_package_data=True, 
    install_requires=[ 
     "asyncio", 
    ], 
    entry_points={ 
     'console_scripts': [ 
      'foobar = foobar.__main__:main' 
     ] 
    }, 
) 

이제 주요 평 파일이 설치됩니다 및 인 설치 후 콘솔의 밖으로는 foobar에 의해 호출 내가 원한거야. 문제는 .py에 3 행에서 가져 오기가 있는데 작동하지 않습니다. 내가 더미 디렉토리에있는 python3 setup.py bdist 실행

dummy/setup.py 
dummy/requirements.txt 
dummy/foobar/__init__.py 
dummy/foobar/__main__.py 
dummy/foobar/wont_be_imported_one.py 

을 다음과 같이

그래서 내 폴더 구조입니다. 설치 후에는 foobar를 실행하면 , 나는 오류

File "/usr/local/bin/foobar", line 9, in <module> 
    load_entry_point('foobar==0.1.0', 'console_scripts', 'foobar')() 

[...] 

ImportError: No module named 'wont_be_imported_one'. 

UPDATE를 얻을. __init__.py

from wont_be_imported_one import wont_be_imported_one 

wont_be_imported_one.py 실제로 가져올 필요 wont_be_imported_one 함수에서가의 콘텐츠가 있습니다.

+1

'__init __. py' 내용? – dsgdfg

+0

wont_be_imported_one 가져 오기 wont_be_imported_one – kaboom

답변

2

파이썬 3에서는 import S는 기본적으로 절대적 등 foobar 내부 from wont_be_imported_one import ...foobar의 일부라는 wont_be_imported_one 외부 모듈에 대한 참조로 해석되어야한다. 대신 상대 가져 오기를 사용해야합니다

from .wont_be_imported_one import wont_be_imported_one 
# ^Add this 

자세한 내용은 PEP 328를 참조하십시오.