Получить Notepad ++, чтобы использовать относительный путь к изображению - PullRequest
0 голосов
/ 29 декабря 2018

Я могу открыть любой файл python из Notepad ++, используя F5, если только он не ссылается на изображение с относительным путем.Должен быть способ заставить Notepad ++ F5 работать так же, как дважды щелкнуть имя файла в проводнике Windows или щелкнуть правой кнопкой мыши на том же имени файла, чтобы «Редактировать с IDLE».Как заставить Notepad ++ открывать файл без жесткого кодирования в моем .py файле с полным путем, каким он существует на моем компьютере?Конечному пользователю моего приложения не нужен путь, который находится на моем компьютере.Я не мог найти инструкции о том, как такой начинающий, как я, мог бы исправить АЭС, чтобы сделать это правильно.Я использую NPP v7.4.2 32-bit в Windows 7. Я пробовал форум NPP, но ни его поисковая система, ни Google не нашли ответа.

F5 открывает файл правильно, только если я жестко закодировал полный путь, как показано в верхней строке без комментариев.

Я думал, что нашел ответ здесь но посмотрите второе сообщение об ошибке ниже, когда я попытался

img4 = tk.PhotoImage(file=os.path.abspath("joe.gif") , master=root)

Очевидно, АЭС навязывает мне абсолютный путь.

Спасибо за любую помощь.

import tkinter as tk

root = tk.Tk()

# img4 = tk.PhotoImage(file="joe.gif", master=root)
img4 = tk.PhotoImage(file="c:/tkinter_code/joe.gif" , master=root)
logoimage = tk.Label(root, image=img4)
logoimage.image = img4
logoimage.grid()

root.mainloop()


Traceback (most recent call last):
File "C:\tkinter_code\how_to_get_npp_to_display_images_with_relative_path_tkinter.py", line 9, in <module>     img4 = tk.PhotoImage(file="joe.gif", master=root) File "C:\Users\LUTHER\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 3393, in __init__Image.__init__(self, 'photo', name, cnf, master, **kw) File "C:\Users\LUTHER\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__ init__.py", line 3349, in __init__ self.tk.call(('image', 'create', imgtype, name,) + options) _tkinter.TclError: couldn't open "joe.gif": no such file or directory

Traceback (most recent call last):
File "C:\tkinter_code\how_to_get_npp_to_display_images_with_relative_path_tkinter.py", line 14, in <module>     img4 = tk.PhotoImage(file=os.path.abspath("joe.gif") , master=root) File "C:\Users\LUTHER\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 3393, in __init__    Image.__init__(self, 'photo', name, cnf, master, **kw) File "C:\Users\LUTHER\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 3349, in __init__    self.tk.call(('image', 'create', imgtype, name,) + options) _tkinter.TclError: couldn't open "C:\Program Files\Notepad++\joe.gif": no such file or directory

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Вот ответ.Чтобы сделать все это в Python, мне не нужно менять NPP:

import os
os.chdir("C:/tkinter_code")

При добавлении направления Python файл теперь открывается правильно из NPP F5, изображения и всего.

0 голосов
/ 29 декабря 2018

Вам понадобится, чтобы NPP запустил скрипт с рабочим каталогом , установленным правильно, то есть с путем к вашему файлу.

Здесь ответ для этого: просто измените выполняемую команду на

cmd /K cd "$(CURRENT_DIRECTORY)" && python "$(FULL_CURRENT_PATH)" 
...