Redis, MongoDB 또는 PostgreSQL으로 백업 할 수있는 데이터 저장소와 같이 여러 가지 구현이있는 매우 간단한 기능 집합이 있습니다. 이러한 구현 중 하나를 사용하려는 코드가 Redis 백엔드를 사용하는 경우 psycopg2
을 설치할 필요가없는 등 해당 구현에 대한 종속성 만 필요하도록 코드를 구조화/작성해야합니다.Python에서 사용하는 구현에 대한 종속성 패널티 만 지불하는 방법은 무엇입니까?
다음은 예입니다. 다음 모듈을 가정하십시오 : example.py
.
>>> import example
You need to install flibbertigibbet-py
대안 : 내가 UnsatisfiedExample
의 인스턴스를 시도 할 때까지
>>> from example import RedisExample
You need to install flibbertigibbet-py
정말 오히려 내가 그 오류가 발생하지 않은 것
class RedisExample(object):
try:
import redis
except ImportError:
print("You need to install redis-py.")
def __init__(self):
super(RedisExample, self).__init__()
class UnsatisfiedExample(object):
try:
import flibbertigibbet
except ImportError:
print("You need to install flibbertigibbet-py")
def __init__(self):
super(UnsatisfiedExample, self).__init__()
여기 내 파이썬 쉘 경험입니다. 이 문제에 접근하기위한 일반적인 방법이 있습니까? example
각각의 백엔드가 자체 모듈을 가져오고 팩토리 함수를 사용하여 패키지를 만드는 것에 대해 생각해 봤지만 더 나은 것을 놓치지 않았는지 확인하려고했습니다.
감사합니다.
놀라운 놀음을받은 후 전체 질문이 제목에 ...? –
제목을 집중하고 몸에 세부 정보를 제공하는 데 도움이 될 수 있습니다. 세부 정보가 도움이됩니다. 원하는 코드가 실제로 도움이되는지 보여주는 코드입니다. –
죄송합니다. 신생아가 있습니다. 신생아가 있으므로, 집중할 수있는 능력이 1 분 뒤에 있습니다. 나는 개정하려고 노력할 것이다. –