Main.py не может прочитать модуль, вызываемый внутри другого модуляPython

Программы на Python
Ответить
Anonymous
 Main.py не может прочитать модуль, вызываемый внутри другого модуля

Сообщение Anonymous »

Я пробую географические API Google и стараюсь соблюдать передовой опыт. Я стараюсь не допускать попадания своего API-ключа в репозиторий GitHub, помещая его в файл (api_keys.py).
coordinates_api.py вызывает api_keys.py с помощью import api_keys для получения ключа и вызова API, а при тестировании координат_api.py все работает нормально, и мои координаты печатаются, как я и ожидал .
Однако, когда я тестирую main.py, который вызывает координаты_api.py, я получаю ошибку:
Traceback (most recent call last):
File "c:\Users\me\Documents\Projects\Git\ProjectName\src\main.py", line 1, in
from apis import *
File "c:\Users\me\Documents\Projects\Git\ProjectName\src\apis\coordinates_api.py", line 2, in
import api_keys
ModuleNotFoundError: No module named 'api_keys'

Я не понимаю, почему мой модуль api_keys не распознается main.py
Вот код для координаты_api.py:
import requests
import api_keys

class CoordinatesAPI:
def __init__(self, api_key=None):
self.api_key = api_keys.geo

def get_coordinates(self, address):
base_url = "https://maps.googleapis.com/maps/api/geocode/json"
params = {
"address": address,
"key": self.api_key
}
response = requests.get(base_url, params=params)
if response.status_code == 200:
data = response.json()
if data['status'] == 'OK':
location = data['results'][0]['geometry']['location']
return location['lat'], location['lng']
else:
raise Exception(f"Error from API: {data['status']}")
else:
raise Exception(f"HTTP error: {response.status_code}")

И для main.py:
from apis import coordinates_api

if __name__ == "__main__":
address = "1600 Amphitheatre Parkway, Mountain View, CA"
CA1 = coordinates_api.CoordinatesAPI()
lat, lng = CA1.get_coordinates(address)
print(f"Latitude: {lat}, Longitude: {lng}")

(Здесь я также попробовал немного поиграться с импортом, но, например, из API-импорта * выдает ту же ошибку. Вместо того, чтобы делать пробы и ошибки, я хотел бы правильно понять чего мне здесь не хватает)
Вот как выглядит мое дерево:
│ main.py

├───apis
│ │ api_keys.py
│ │ coordinates_api.py
│ │ __init__.py


Подробнее здесь: https://stackoverflow.com/questions/792 ... her-module
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»