Я пробую географические 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
Main.py не может прочитать модуль, вызываемый внутри другого модуля ⇐ Python
Программы на Python
-
Anonymous
1734207717
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79278713/main-py-cannot-read-module-called-by-inside-other-module[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия