내 응용 프로그램을 패키지화하여 여러 프로젝트간에 공유하고 싶습니다. 내 setup.py은 다음과 같습니다 distutils와 함께 배포 된 모듈을 가져올 수 없습니다.
# -*- coding: utf-8 -*-
from distutils.core import setup
setup(
name='foo_bar',
version='1.0',
py_modules=['foo_bar'],
install_requires=[
'bitstring==3.1.5',
'pytz==2016.4',
'wheel==0.24.0', ]
)
가 그럼 난 나를
내 foo_bar 응용 프로그램을 사용에 문제가에 대한 tar.gz 파일을 생성 명령
python setup.py sdist
를 실행합니다. 나는 주사위를 통해 별도의 VIRTUALENV로를 설치하고있어
pip install dist/foo_bar.tar.gz
내가 파이썬 콘솔에서이 모듈을 가져올 때 PIP 동결의 출력이
foo-bar==1.0
bitstring==3.1.5
pytz==2016.4
wheel==0.24.0
를 설치 제안
import foo_bar
내가 얻을 ImportError: No module named 'foo_bar'
내가 뭘까요?
편집 :
foo_bar
├── dist
│ └── foo_bar-1.0.tar.gz
├── __init__.py
├── MANIFEST
├── bar.py
├── requirements.txt
├── setup.py
''python setup.py install''도 시도해 보셨습니까? 디렉토리 구조를 제공 할 수 있습니까? 모듈을 가져올 때 동일한 virtualenv에 있습니까? 왜''packages'가 아닌''py_modules''를 사용하고 있습니까? 그것은 훨씬 더 유연합니다 ... – ziky
@ziky 디렉토리 구조를 포함하도록 내 게시물을 업데이트했습니다. 별도의 virtualenv를 사용하고 있지만 거기에 foo_bar가 설치되어 있습니다. TBH, 'packages'옵션에 대해 들어 보지 못했습니다. py_module 대신에 사용할 수 있습니까? – mateuszb
당신은''foo_bar''를 가져 오려고합니다, 그러나''foo_bar.py''는 패키지 안에 없습니다! 그 이름으로''bar.py''의 이름을 변경하십시오. 그러나 나는 이런 방식으로 패키지를 사용한 적이 없다. 보통''setup.py''와 같은 레벨에 패키지 (''__init __. py'' 파일로 디렉토리)를 만듭니다. 즉, 프로젝트에서 다른''foo_bar'' 디렉토리를 만들고 거기에''bar.py''를 놓을 것입니다. 그런 다음''import foo_bar.bar''와 같이 가져올 것입니다. – ziky