Python 脚本在 IDLE 中工作但不能作为 .desktop 图标
Python scripts works in IDLE but not as a .desktop icon
我正在尝试 运行 在 LX 桌面环境中单击图标 (.desktop) 上的 python3 脚本。它以前工作过,但现在由于某种原因它没有打开,但仍在 IDLE3 中工作。所以,我在终端中输入 "python3 oldtext.py" 并 得到了这些错误:
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "oldtext.py", line 3, in <module>
from tkinter import *
File "/home/pi/Desktop/tkinter.py", line 13, in <module>
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line 7, in <module>
from six.moves import tkinter_filedialog as FileDialog
File "/usr/lib/python3/dist-packages/six.py", line 89, in __get__
result = self._resolve()
File "/usr/lib/python3/dist-packages/six.py", line 108, in _resolve
return _import_module(self.mod)
File "/usr/lib/python3/dist-packages/six.py", line 79, in _import_module
__import__(name)
ImportError: No module named 'tkinter.filedialog'; 'tkinter' is not a package
但是当我尝试安装它时它 (tkinter) 已经安装了...
因为它说导入错误,这是我的导入:
#/usr/bin/env python3
#import necessary packages
from tkinter import *
try:
import Tkinter as tk
except ImportError:
import tkinter as tk
from PIL import ImageTk, Image
import time
import io
import os
import serial
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
from matplotlib import pyplot as plt
import matplotlib.animation as animation
import numpy as np
import sys
import random
此外,这是 .desktop 文件。(我确实使脚本可执行)
[Desktop Entry]
Name=GUI DESKTOP
Exec=/home/pi/Desktop/oldtext.py
Icon=/usr/share/pixmaps/idle.xpm
Terminal=false
Type=Application
Categories=Application;Development;
StartupNotify=true
这是怎么回事?我假设这些错误是导致文件在单击图标时无法打开的原因。有人知道吗?
请注意,在您的错误中,它说:
File "oldtext.py", line 3, in <module>
from tkinter import *
File "/home/pi/Desktop/tkinter.py", line 13, in <module>
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
第二部分,File "/home/pi/Desktop/tkinter.py"
,是重点。它表明 tkinter
模块已被另一个文件覆盖。而且,该文件的第 13 行是 from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
,顺便说一句,这也是您在问题中粘贴的代码的第 13 行。我的猜测是您的文件名为 tkinter.py
,您需要重命名它才能使脚本正常工作。
我正在尝试 运行 在 LX 桌面环境中单击图标 (.desktop) 上的 python3 脚本。它以前工作过,但现在由于某种原因它没有打开,但仍在 IDLE3 中工作。所以,我在终端中输入 "python3 oldtext.py" 并 得到了这些错误:
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "oldtext.py", line 3, in <module>
from tkinter import *
File "/home/pi/Desktop/tkinter.py", line 13, in <module>
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line 7, in <module>
from six.moves import tkinter_filedialog as FileDialog
File "/usr/lib/python3/dist-packages/six.py", line 89, in __get__
result = self._resolve()
File "/usr/lib/python3/dist-packages/six.py", line 108, in _resolve
return _import_module(self.mod)
File "/usr/lib/python3/dist-packages/six.py", line 79, in _import_module
__import__(name)
ImportError: No module named 'tkinter.filedialog'; 'tkinter' is not a package
但是当我尝试安装它时它 (tkinter) 已经安装了...
因为它说导入错误,这是我的导入:
#/usr/bin/env python3
#import necessary packages
from tkinter import *
try:
import Tkinter as tk
except ImportError:
import tkinter as tk
from PIL import ImageTk, Image
import time
import io
import os
import serial
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
from matplotlib import pyplot as plt
import matplotlib.animation as animation
import numpy as np
import sys
import random
此外,这是 .desktop 文件。(我确实使脚本可执行)
[Desktop Entry]
Name=GUI DESKTOP
Exec=/home/pi/Desktop/oldtext.py
Icon=/usr/share/pixmaps/idle.xpm
Terminal=false
Type=Application
Categories=Application;Development;
StartupNotify=true
这是怎么回事?我假设这些错误是导致文件在单击图标时无法打开的原因。有人知道吗?
请注意,在您的错误中,它说:
File "oldtext.py", line 3, in <module>
from tkinter import *
File "/home/pi/Desktop/tkinter.py", line 13, in <module>
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
第二部分,File "/home/pi/Desktop/tkinter.py"
,是重点。它表明 tkinter
模块已被另一个文件覆盖。而且,该文件的第 13 行是 from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
,顺便说一句,这也是您在问题中粘贴的代码的第 13 行。我的猜测是您的文件名为 tkinter.py
,您需要重命名它才能使脚本正常工作。