Arcanum_Viator
@Arcanum_Viator
Индусский кодер

Как заставить готовый exe-файл обращаться к файлам по фиксированной директории?

Есть приложение для чтения и редактирования текстовых файлов на Tkinter.
У приложения установлена иконка и интерфейс с png-картинками, всё это добро лежит в специальной
папке. Есть возможность "перетаскивать" файлы на ярлык, после чего файл открывается.

Если запустить приложение напрямую находясь в одной директории с папкой элементов интерфейса то всё работает.
Если запустить приложение через "Пуск" или перетянув текстовый файл на ярлык
приложения, то папка с интерфейсом ищется в той папке где лежит перетянутый файл, а не там
где лежит приложение.

# Путь у иконки.
root.iconbitmap("interface_icon/myIcon.ico")

# Путь у картинки для пункта меню.
newfile_Image=PhotoImage(file='interface_icon/new_file.png')

filemenu.add_command(label="Новый файл", accelerator="Ctrl+R", image=newfile_Image, compound=LEFT, command=create_file)


Сама ошибка:
Traceback (most recent call last):
  File "main.py", line 203, in <module>
  File "tkinter\__init__.py", line 1871, in wm_iconbitmap
_tkinter.TclError: bitmap "interface_icon/myIcon.ico" not definedTraceback (most recent call last):
  File "main.py", line 203, in <module>
  File "tkinter\__init__.py", line 1871, in wm_iconbitmap
_tkinter.TclError: bitmap "interface_icon/myIcon.ico" not defined

Можно ли как-то задать "фиксированный путь" для изображений и иконок, но при этом не задавать точный путь вроде "C:\Users\UserName\AppFolder\interface_icon\myIcon.ico", чтобы приложение могло работать без переписывания кода даже если перенести его с компьютера на компьютер ?
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 1
@rPman
каталог, в котором находится твой текущий .py файл можно получить os.path.dirname(__file__)

ты можешь сменить текущий каталог на него os. chdir(...) либо при открытии файлов добавлять этот путь вручную
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы