سلام
اسکنسیل یه برنامه جالب برای انجام کار بروی فایل های وکتوریه (یه چیزی مثل xara و یا inkscape)
اسکنسیل رو بعضی سیستم ها اجرا نمیشه و بعد از نصب (همون اول) از ابتدا اجرا نمیشه
این ارور زیاد ارسال شده و در نسخه های مختلف این برنامه هم گزارش شده
روش حل اون هم به سادگی در اینترنت گیر نمیاد چون تعداد ریپرت ها زیاده و لذا گشتن بین اونها خیلی سخته
به همین دلیل من ارور و راه حل رو انجا میذارم تا شاید به درد کسی بخوره
اررور
mahmood@mahmood-pc:~$ skencil
shared memory images supported
Traceback (most recent call last):
File "/usr/bin/skencil", line 34, in <module>
Sketch.main.main()
File "/usr/lib/skencil/Sketch/Base/main.py", line 148, in main
run_script = options.run_script)
File "/usr/lib/skencil/Sketch/UI/skapp.py", line 183, in __init__
self.build_window()
File "/usr/lib/skencil/Sketch/UI/skapp.py", line 223, in build_window
self.run_script)
File "/usr/lib/skencil/Sketch/UI/mainwindow.py", line 98, in __init__
self.build_menu()
File "/usr/lib/skencil/Sketch/UI/mainwindow.py", line 901, in build_menu
self.update_mru_files()
File "/usr/lib/skencil/Sketch/UI/mainwindow.py", line 380, in update_mru_files
self.file_menu.RebuildMenu()
File "/usr/lib/skencil/Sketch/UI/tkext.py", line 367, in RebuildMenu
self.menu.delete(0, END)
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 2678, in delete
self.deletecommand(c)
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 361, in deletecommand
self.tk.deletecommand(name)
TclError: can't delete Tcl command
راه حل
در پست چهارم از آدرس زیر
https://bugs.launchpad.net/ubuntu/+source/skencil/+bug/361636پچ زیر معرفی شده:
http://launchpadlibrarian.net/29740111/menu.patchکه البته چون من بلد نیستم چجوری باید این پچ رو اجرا کنم - دستی این کار رو انجام دادم
قسمت مورد نیاز
def RebuildMenu(self):
if self.entries is not None:
- self.menu.delete(0, END)
+ self.menu.tk.call(self.menu._w, 'delete', 0, END)
if self.rebuild_func is not None:
try:
self.entries = self.rebuild_func()
@@ -375,7 +375,7 @@
def SetEntries(self, entries):
if self.entries is not None:
- self.menu.delete(0, END)
+ self.menu.tk.call(self.menu._w, 'delete', 0, END)
for entry in self.entries:
entry.clean_up()
self.entries = entries
حالا دستور زیر رو اجرا کنید
sudo gedit /usr/lib/skencil/Sketch/UI/tkext.py
داخل اون بدنبال خط هایی از متن بالا بگردید که نه - کنارشونه و نه +
این یه بخشی ازکده که دارید میبینید
وقتی پیداش کردید قسمت - رو پاک کنید و قسمت + رو جایگزینش کنید
فایل رو سیو کنید و کار تمونه
حالا برنامه اجرامیشه