2017-05-13 7 views
0

라이브러리에서 정의 된 일부 메소드를 사용해야합니다. 내 모듈에서 , 내가 선언 한 내 mod.py에서방법 라이브러리에 액세스하는 방법?

/mymodule/views.py에서

/mymodule/lib/mod.py

그리고 내 views.py 있습니다

class ModClient(object): 
    """REST client for Mod API""" 

    def __init__(self, client_id, secret, environment): 
     self.client_id = client_id 
     self.secret = secret 
     self.environment = environment 

    def _base_url(self): 
     base_url = '' 
     if self.environment == 'sandbox': 
      base_url = 'https://sandbox.mod.com' 
     elif self.environment == 'development': 
      base_url = 'https://development.mod.com' 
     elif self.environment == 'production': 
      base_url = 'https://production.mod.com' 
     return base_url 


    def _base_params(self): 
     params = { 
      'client_id': self.client_id, 
      'secret': self.secret 
     } 
     return params 

    def _parse_response(self, response): 
     result = response.json() 
     if response.status_code != 200: 
      raise ModClientException(message='HTTP status {}: {}'.format(response.status_code, result), 
             http_status=response.status_code, 
             error_type=result.get('error_type', None), 
             error_code=result.get('error_code', None)) 
     return result 

    def get_accounts(self, access_token): 
     url = '{}/accounts/get'.format(self._base_url()) 
     params = self._base_params() 
     params['access_token'] = access_token 
     response = requests.post(url, json=params) 
     return self._parse_response(response) 

view.py에서 내 방법 get_accounts에 액세스 할 수있는 방법 두 모듈 모두 같은 모듈에 있다고 가정합니다.

+0

'modClient'를 view.py에서 인스턴스화 한 다음 해당 인스턴스를 호출 할 수 있습니까? instance.get_accounts ()? – JacobIRR

+0

'mod.py','view.py'는 두 개의 다른 모듈과 아주 흡사합니다! 당신은 그들이 같은 패키지에 있다는 것을 의미합니다 ('mymodule.lib 아마도')? – schwobaseggl

+0

예, 미안 해요, differente 패키지,'views.py'는'/ mymodule/views.py'에 있습니다. – MrMins

답변

1

mymodule 경우 패키지 자체와 포함 된 폴더는 사용자 환경의 PYTHONPATH을 통해 클래스를 가져 오기에 : 그런 다음보기에서 클래스를 인스턴스화하고 인스턴스의 메소드를 호출 할 수 있어야한다

from lib.mod import ModClient 

:

mc = ModClient() 
accounts = mc.get_accounts(token) 

적절한 IDE (PyCharm, Eclipse 등)가 자동으로 가져 오기를 수행합니다.

관련 문제