Форум сайта python.su
sys.path.insert(1, sys.path[0]+'..\\') from voice_command import *
Офлайн
GenaboxЕсли тебе нужно редактировать sys.path, значит ты что-то неправильно делаешь. Скорее всего, у тебя неправильно организована архитектура приложения.
как правильно писать путь к корневой папке
sys.path.insert(1, '..')
Отредактировано py.user.next (Дек. 29, 2022 21:18:24)
Офлайн
да нет просто импортирую файл в папке в приложение
добавляю системный путь еще 1 а не меняю его
так работает
sys.path.insert(1, sys.path[0]+'\\sql') import sqlquerty
sys.path.insert(1, '..')
sys.path.insert(1, '../access')
Отредактировано Genabox (Дек. 30, 2022 03:10:40)
Офлайн
GenaboxНе, надо сделать пакет. Надо сделать пакет, в котором пакеты, в которых модули. И всё это делается без всяких добавлений путей.
да нет просто импортирую файл в папке в приложение
добавляю системный путь еще 1 а не меняю его
так работает
Genaboxsys.path - это обычный список строк. По нулевому индексу в нём находится пустая строка, которая означает текущую директорию. Поэтому твои эти сложения выполняют фактически действия
системный путь это 0 а тут 1 тоесть добавочный
'' + '\\sql'
print(sys.path)
from sql import somefile somefile.func()
Отредактировано py.user.next (Дек. 30, 2022 05:18:22)
Офлайн
Офлайн
ну это разные варианты решения задачи
принт сис патч мне выдал
['d:\\discord', 'd:\\discord\\access', 'd:\\discord\\sql', 'C:\\Users\\Gena\\AppData\\Local\\Programs\\Python\\Python310\\python310.zip', 'C:\\Users\\Gena\\AppData\\Local\\Programs\\Python\\Python310\\DLLs', 'C:\\Users\\Gena\\AppData\\Local\\Programs\\Python\\Python310\\lib', 'C:\\Users\\Gena\\AppData\\Local\\Programs\\Python\\Python310', 'C:\\Users\\Gena\\.virtualenvs\\discord-q4ERoUCO', 'C:\\Users\\Gena\\.virtualenvs\\discord-q4ERoUCO\\lib\\site-packages', 'C:\\Users\\Gena\\.virtualenvs\\discord-q4ERoUCO\\lib\\site-packages\\win32', 'C:\\Users\\Gena\\.virtualenvs\\discord-q4ERoUCO\\lib\\site-packages\\win32\\lib', 'C:\\Users\\Gena\\.virtualenvs\\discord-q4ERoUCO\\lib\\site-packages\\Pythonwin']
sys.path.insert(1, sys.path[0]+'\\sql') import sqlquerty from sqlquerty import *
Офлайн
Отстань от sys.path вообще.
Сделай пакет.
Пример я тебе скинул. Пакетом в примере является директория sql.
Импортировать все имена из модуля пакета можно и так
from sql.somefile import * func()
GenaboxТы просто не шаришь, потому что не понимаешь, как питон работает. А чтобы понимать, надо просто книжки по питону читать, а не пытаться наугад что-то там понять. Ты всё равно не поймёшь его сам, потому что он умнее, чем ты думаешь.
и все работает, мне так проще, нет мусорных файлов которые не привязаны к коду
Отредактировано py.user.next (Дек. 30, 2022 09:39:28)
Офлайн
import sys sys.path.insert(2, sys.path[0]+'\\images') image = Image.open("images\icon.png")
Отредактировано Genabox (Дек. 30, 2022 20:33:28)
Офлайн
GenaboxСейчас три, потом ещё три, потом ещё три, потом ещё и так далее. Короче, так ты будешь писать в три раза больше, чем если по-нормальному. В этом деле скупой платит дважды.
пишешь 3 строчки и чатаешь любые файлы в папках
GenaboxЭто сейчас у тебя три строчки. Но ты смотришь только на момент сейчас, а программа-то живёт ещё и в будущем. Завтра тебе надо будет исправлять баг какой-нибудь в ней, который ты пропустил сегодня и из-за которого завтра просто она вся работать не будет, а ты этот баг не сможешь исправить, потому что исправление бага потребует полного переписывания всей программы. То же самое будет, когда надо будет не баг исправлять, а какую-то фичу добавлять. Ладно, фичу-то можно и не добавлять, а вот если баг не исправлять, который рушит всю работу, то в итоге эта программа вообще будет бесполезна и будет просто из себя представлять кучу потраченного времени и только. Вот из-за этого всего программу надо писать правильно изначально, даже если там одна строчка кода всего лишь.
делать пакет для картинки или 3 строчек рут доступа
GenaboxЭто слишком сложно для тебя, но я тебе показываю правильный способ.
да еще из имени папки и пути делать классоваю переменную
Отредактировано py.user.next (Дек. 30, 2022 22:53:51)
Офлайн
списабо воспользуюсь Вашим примером
Офлайн