Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 7, 2018 13:12:40

From
Зарегистрирован: 2018-09-07
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Взаимодействие импортированного собственного модуля с ранее импортированным

Доброго времени уважаемое сообщество. Дело в следующем:
Имеем два файла:
one.py
sub.py

Импортирую sub.py в one.py. Вот упрощённый код файла one.py:

 import pyautogui
 import sub
 sub.hello()

Код файла sub.py:

 def hello():
    print(pyautogui.position())

Получаю ошибку:

NameError: name ‘pyautogui’ is not defined

То есть ранее импортированный pyautogui не виден. При включении кода из sub.py в one.py всё работает. При добавлении import pyautogui в sub.py также работает.
Вопрос: Существует ли “кошерный” способ импортировать файлы в основной файл, не добавляя импорта pyautogui в каждый? Поскольку таких файлов планируется много: sud1.py sub2.py и т. д., а также возможны и другие варианты, это пример.
Гугление не помогло, потому спрашиваю у специалистов.

Офлайн

#2 Сен. 7, 2018 15:30:59

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Взаимодействие импортированного собственного модуля с ранее импортированным

From
Существует ли “кошерный” способ импортировать файлы в основной файл, не добавляя импорта pyautogui в каждый? Поскольку таких файлов планируется много: sud1.py sub2.py и т. д., а также возможны и другие варианты, это пример.
Если напрямую то нет, sub.py не знает что вы там нампортировали и где. Читайте про пространство имен, там все расписано.
Если не напрямую то есть два стула варианта.
1. если импортов много и влом каждый раз кописастить можно создать некий модуль назвем его my_imports.py, например с таким содержанием:
 import os
import sys
...
import bald_devil
а в каждом файле просто писать from my_imports import *
2.под вендой в пайтоне есть переменная окружения PYTHONSTARTUP (если ее нету ее можно создать)
если в этой переменной прописать my_imports.py то каждый раз когда будет запускаться python.exe в интерактивном режиме, то он будет выполнять сразу после запуска my_imports.py
в ИДЕ эта штука может не работать, или ИДЕ может иметь свои настройки для этого.




==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Сен. 7, 2018 15:32:17)

Офлайн

#3 Сен. 7, 2018 17:40:44

From
Зарегистрирован: 2018-09-07
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Взаимодействие импортированного собственного модуля с ранее импортированным

Большое спасибо. Я думал о нечто подобном описанному Вами my_imports.py, хотел узнать мнение специалистов.
Проект делаю в PYCHARM и так же читал о подобном способе.
Немало перечитал о найденных в поисковиках способах, хочется то использовать правильный и лучший)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version