Hussein Ouda
-
المساهمات
44 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
أجوبة بواسطة Hussein Ouda
-
-
تم حل الإشكالية
تبين عند دخولي إلى كود مكتبة pytube في github وجدت جميع التعليقات تؤكد أن المشكلة من نفس المكتبة ولكن تم تحديث المكتبة
والان قمت بتحديث المكتبة وفعلاً اشتغل البرنامج بدون مشاكل
أكتبpip install --upgrade pytube
ستعمل بدون مشاكل بإذن الله -
قمت ببرمجة برنامج بايثون لتحميل الفيديوهات من اليوتيوب
وبعد وضع الرابط وبدء التحميل يخرج لي الخطأ التالي :
Exception in Tkinter callback Traceback (most recent call last): File "C:\lib\tkinter\__init__.py", line 1892, in __call__ return self.func(*args) File "d:\Youtube-Downloader.py", line 36, in DownloadVideo select = yt.streams.filter(progressive=True).first() File "C:\lib\site-packages\pytube\__main__.py", line 292, in streams return StreamQuery(self.fmt_streams) File "C:\lib\site-packages\pytube\__main__.py", line 177, in fmt_streams extract.apply_signature(stream_manifest, self.vid_info, self.js) File "C:\lib\site-packages\pytube\extract.py", line 409, in apply_signature cipher = Cipher(js=js) File "C:\lib\site-packages\pytube\cipher.py", line 43, in __init__ self.throttling_plan = get_throttling_plan(js) File "C:\lib\site-packages\pytube\cipher.py", line 387, in get_throttling_plan raw_code = get_throttling_function_code(js) File "C:\lib\site-packages\pytube\cipher.py", line 301, in get_throttling_function_code code_lines_list = find_object_from_startpoint(js, match.span()[1]).split('\n') AttributeError: 'NoneType' object has no attribute 'span'
أرفق لكم الكود التالي :
# Youtube Downloader from cgitb import text from logging import root from random import choices from secrets import choice from tkinter import * from tkinter import ttk from tkinter import messagebox from tkinter import filedialog from typing_extensions import Self from numpy import save from pytube import YouTube from soupsieve import select #pip install pytube3 Folder_Name = "" #file location def openLocation(): global Folder_Name Folder_Name = filedialog.askdirectory() if(len(Folder_Name) > 1): locationError.config(text=Folder_Name, fg="green") else: locationError.config(text="اختر المجلد", fg="red") #donwload video def DownloadVideo(): choice = ytdchoices.get() url = ytdEntry.get() if(len(url)>1): ytdError.config(text="") yt = YouTube(url) if(choice == choices[0]): select = yt.streams.filter(progressive=True).first() elif(choice == choices[1]): select = yt.streams.filter(progressive=True, file_extension='mp4').last() elif(choice == choices[2]): select = yt.streams.filter(only_audio=True).first() else: ytdError.config(text="ألصق الرابط مجدداً", fg="red") #download function select.download(Folder_Name) ytdError.config(text="تم الانتهاء من التحميل!!") # -------- دالة من نحن -------- def about(): messagebox.showinfo("Techmakers - Hussein Ouda", "husseinaoda@mail.com : مرحبا بكم في برنامج تحميل الفيديوهات والصوتيات") root = Tk() root.title("Techmakers: v 1.0 Youtube Downloader") root.geometry("650x410+340+10") #set window root.resizable(False, False) root.columnconfigure(0, weight=1) #set all content in center. f1=Frame(root, width=580, height=100, bg='whitesmoke', bd=3, relief=GROOVE) f1.place(x=30, y=130) f2=Frame(root, width=580, height=55, bg='whitesmoke', bd=3, relief=GROOVE) f2.place(x=30, y=250) #Ytd Link Label t = Label(root, text="برنامج تحميل الفيديوهات والصوتيات", bg='#FF5F00', fg='#EEEEEE', font=("Tajawal", 15, 'bold')) t.pack(fill='x') ytdLabel = Label(root, text="ألصق رابط الفيديو",fg='#00092C', font=("Tajawal", 15, 'bold')) ytdLabel.pack() #Entry Box ytdEntryVar = StringVar() ytdEntry = Entry(root, width=52, justify='center', font=("Tajawal", 15), bg='#B20600', fg='#00092C', textvariable=ytdEntryVar) ytdEntry.pack() #Error Msg ytdError = Label(root, text="ملاحظات التحميل", fg="#B20600", font=("Tajawal", 10)) ytdError.pack() #Asking save file label saveLabel = Label(root, text="اختر مكان حفظ الفيديو", bg="whitesmoke", fg='#00092C', font=("Tajawal", 15, 'bold')) saveLabel.place(x=390, y=140) #btn of save file saveEntry = Button(root, width=20, font=("Tajawal", 10, 'bold'), bg="#00092C", fg="#EEEEEE", text="مسار الحفظ", command=openLocation, cursor='sizing') saveEntry.place(x=410, y=180) #Error Msg location locationError = Label(root, text="لم يتم اختيار مسار حفظ الفيديو", bg='whitesmoke', fg="#B20600", font=("Tajawal", 15)) locationError.place(x=100, y=190) #Download Quality ytdQuality = Label(root, text="", bg='whitesmoke', font=("Tajawal", 15, 'bold')) ytdQuality.place(x=430, y=255) #combobox choices = ["720p", "144p", "صوت فقط"] ytdchoices = ttk.Combobox(root, values=choices) ytdchoices.place(x=260, y=265) #download btn downloadbtn = Button(root, text="بدء التحميل", width=20, font=("Tajawal", 10, 'bold'), bg="#00092C", fg="#EEEEEE", command=DownloadVideo, cursor='clock') downloadbtn.place(x=40, y=255) #developer Label about_btn = Button(root, text='من نحن', width=20, font=("Tajawal", 10, 'bold'), bg='#FF5F00', fg='#EEEEEE', bitmap='info',command=about, cursor='heart') about_btn.place(x=350, y=350, height=30) #Close program exit_btn = Button(root, text='إغلاق البرنامج', width=20, font=("Tajawal", 10, 'bold'), bg='#FF5F00', fg='#EEEEEE', cursor='cross', command=root.quit) exit_btn.place(x=265, y=350, width=80, height=30) root.mainloop()
أرجو المساعدة
-
import requests import time #global variables api_key = '15******-ce*0-42*d-9c*6-17******49*0' bot_key = '51******56:A*H-o_hf******Gm******ON******M4*bg' chat_id = '10******03' limit = 59000 #لو قل المبلغ عن هذا الرقم ارسل رسالة على بوت التلغرام time_interval = 60 * 5 #الاتصال بالموقع لمعرفة السعر كل 5 دقائق # دالة لمخاطبة الموقع وجلب السعر def get_price(): url = 'https://sandbox-api.coinmarketcap.com/v1/cryptocurrency/listings/latest' parameters = { 'start':'1', 'limit':'2', 'convert':'USD' } headers = { 'Accepts': 'application/json', 'X-CMC_PRO_API_KEY': api_key, } response = requests.get(url, headers=headers, params=parameters).json() btc_price = response['data'][0]['quote']['USD']['price'] return btc_price # دالة ترسل رسالة لو قل المبلغ عن الرقم المحدد ارسل رسالة على بوت التلغرام def send_update(chat_id, msg): url = f'https://api.telegram.org/bot{bot_key}/sendMessage?chat_id={chat_id}&text={msg}' requests.get(url) # دالة لتشغيل الدوال السابقة def main(): while True: price = get_price() print(price) if price < limit: send_update(chat_id, f"سعر البتكوين:{price}") time.sleep(time_interval) main()
بتاريخ On 18/3/2022 at 08:48 قال Abdollahi Mohammed:برجاء ارفاق شيفرة البرنامج ليتم معرفة مكان الخطأ حتى نستطيع معالجة المشكلة
شكرا لك,
code:
import requests import time #global variables api_key = '15******-ce*0-42*d-9c*6-17******49*0' bot_key = '51******56:A*H-o_hf******Gm******ON******M4*bg' chat_id = '10******03' limit = 59000 #لو قل المبلغ عن هذا الرقم ارسل رسالة على بوت التلغرام time_interval = 60 * 5 #الاتصال بالموقع لمعرفة السعر كل 5 دقائق # دالة لمخاطبة الموقع وجلب السعر def get_price(): url = 'https://sandbox-api.coinmarketcap.com/v1/cryptocurrency/listings/latest' parameters = { 'start':'1', 'limit':'2', 'convert':'USD' } headers = { 'Accepts': 'application/json', 'X-CMC_PRO_API_KEY': api_key, } response = requests.get(url, headers=headers, params=parameters).json() btc_price = response['data'][0]['quote']['USD']['price'] return btc_price # دالة ترسل رسالة لو قل المبلغ عن الرقم المحدد ارسل رسالة على بوت التلغرام def send_update(chat_id, msg): url = f'https://api.telegram.org/bot{bot_key}/sendMessage?chat_id={chat_id}&text={msg}' requests.get(url) # دالة لتشغيل الدوال السابقة def main(): while True: price = get_price() print(price) if price < limit: send_update(chat_id, f"سعر البتكوين:{price}") time.sleep(time_interval) main()
- 1
-
زملائي الأكارم
عملت بوت على التلغرام بالغة بايثون لمعرفة سعر البتكوين ..
عملت البوت واشتغل عندي ورفعته على سيرفر علشان يبقى شغال على طول وفعلاً ,
لكن المشكلة انو لما حد جديد يشترك في البوت يتم الاشتراك لكن ما تظهر عنده رسائل البوت!!
ما المشكلة؟ -
بتاريخ 19 ساعات قال Wael Aljamal:
يمكن التأكد من أن المتغير ليس فارغ لتنجب وضع %% وراء بعضهم
se_var_val = "_" if str(self.se_var.get()) != "" se_var_val = str(self.se_var.get()) str(self.se_by.get())+" LIKE " + '%' + se_var_val + '%')
قمت بتعريف المتغير في أعلى البرنامج :
# -------- variable = بيانات البحث في البرنامج -------- self.se_by = StringVar() self.se_var = StringVar()
👆
-
بتاريخ 51 دقائق مضت قال Wael Aljamal:
حاول تعديل السطر كالتالي:
str(self.se_by.get())+" LIKE '%'"+ str(self.se_var.get())+"'%'")
أو:
str(self.se_by.get())+" LIKE " + '%' + str(self.se_var.get())+ '%')
قمت بالتعديل السابق ولم يختلف الخطأ
-
قمت بكتابة دالة للبحث في البرنامج :
def search(self): con = pymysql.connect(host='localhost', user = 'root', password = '', database = 'employ') cur = con.cursor() cur.execute("select * from employees where " + str(self.se_by.get())+" LIKE '%"+ str(self.se_var.get())+"%'") rows = cur.fetchall() if len (rows) !=0: self.student_table.delete(*self.student_table.get_children()) for row in rows: self.student_table.insert("", END, value=row) con.commit() con.close()
ولا تعمل! حيث تعطي الخطأ التالي :
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%%'' at line 1")
الرجاء المساعدة
- 2
-
قمت بكتابة دالة بايثون لتعديل بيانات ومعلومات مدخله في قاعدة البيانات
def update(self): con = pymysql.connect( host = 'localhost', user = 'root', password = '', database = 'employ') cur = con.cursor() cur.execute("update employees set family_members=%s, social_status=%s, gender=%s, date_birth=%s, id_number=%s, mail=%s, name=%s where id=%s",( self.family_members_var.get(), self.social_status_var.get(), self.gender_var.get(), self.date_birth_var.get(), self.id_number_var.get(), self.mail_var.get(), self.name_var.get(), self.id_var.get() )) con.commit() self.fetch_all() self.clear() con.close()
وخرج لي الخطأ التالي :
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1")
- 1
-
وجدت حل الإشكالية
يقول الخطأ
أنه يتوقع الحصول على iterable أي مؤشر على غرض معين،
بينما يستقبل دالة، لذلك يجب استدعاء الدالة بوضع أقواس () لها
self.student_table.delete(*self.student_table.get_children()) ^^
شكر لك يا طيب على مرورك المتفاعل
-
كتبت كود برنامج على python tkinter خاص ببيانات الموظفين
وتم الاتصال بقواعد البيانات وادخال المعلومات على الجدول بنجاح,from tkinter import * from tkinter import ttk import pymysql class Employee: # ----------- إنشاء نافذة البرنامج ----------- def __init__(self, root): self.root = root self.root.geometry('1300x650+22+22') # الأرقام الإضافية بعد الطول والعرض (22) هي توصيت الشاشة مسافة من اليسار ومن الأعلى self.root.title('برنامج إدارة الموظفين') self.root.configure(background="#316df4") self.root.resizable(False, False) title = Label(self.root, text='[بيانات الموظفين]', bg='#316df4', font=('monospace',18), fg='white' ) title.pack(fill='x') # ----------- variable ----------- # -------- variable = البيانات الشخصية -------- self.id_var = StringVar() self.name_var = StringVar() self.mail_var = StringVar() self.id_number_var = StringVar() self.date_birth_var = StringVar() self.gender_var = StringVar() self.social_status_var = StringVar() self.family_var = StringVar() # -------- variable = معلومات الاتصال -------- self.nationality_var = StringVar() self.id_photo_var = StringVar() self.country_var = StringVar() self.governorate_var = StringVar() self.city_var = StringVar() self.phone_var = StringVar() self.skype_var = StringVar() self.telegram_var = StringVar() # ----------- تقسيم لأختيارات علوية ----------- nb = ttk.Notebook(self.root) nb.place(x=900,y=34, width=400, height=460) f1 = Frame(nb, width='500', height='100', bg='#fff') nb.add(f1, text='بيانات شخصية') f2 = Frame(nb, width='500', height='100', bg='#fff') nb.add(f2, text='معلومات الاتصال') # ----------- أدوات التحكم في البيانات الشخصية 1 ----------- # Manage_Frame = Frame(self.root, bg='white') # Manage_Frame.place(x=10,y=190, width=200, height=460) lbl_ID = Label(f1, text='الرقم التسلسلي', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_ID.pack() ID_Entry = Entry(f1, textvariable=self.id_var, bd='2', bg='#05234f', fg='#fff', justify='center') ID_Entry.pack() lbl_name = Label(f1, text='اسم الموظف', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_name.pack() Name_Entry = Entry(f1, textvariable=self.name_var, bd='2', bg='#05234f', fg='#fff', justify='center') Name_Entry.pack() lbl_email = Label(f1, text='البريد الإلكتروني', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_email.pack() Email_Entry = Entry(f1, textvariable=self.mail_var, bd='2', bg='#05234f', fg='#fff', justify='center') Email_Entry.pack() lbl_ID_Number = Label(f1, text='رقم الهوية', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_ID_Number.pack() ID_Number_Entry = Entry(f1, textvariable=self.id_number_var, bd='2', bg='#05234f', fg='#fff', justify='center') ID_Number_Entry.pack() lbl_Date_Birth = Label(f1, text='تاريخ الميلاد', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_Date_Birth.pack() Date_Birth_Entry = Entry(f1, textvariable=self.date_birth_var, bd='2', bg='#05234f', fg='#fff', justify='center') Date_Birth_Entry.pack() lbl_Gender = Label(f1, text='الجنس', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_Gender.pack() combo_Gender = ttk.Combobox( f1, value=('ذكر', 'أنثى'), state='readonly', textvariable=self.gender_var ) combo_Gender.pack() lbl_Social_Status = Label(f1, text='الحالة الاجتماعية', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_Social_Status.pack() combo_Social_Status = ttk.Combobox( f1, value=('أعزب', 'متزوج'), state='readonly', textvariable=self.social_status_var ) combo_Social_Status.pack() lbl_Family_Members = Label(f1, text='عدد أفراد الأسرة', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_Family_Members.pack() Family_Members_Entry = Entry(f1, textvariable=self.family_var, bd='2', bg='#05234f', fg='#fff', justify='center') Family_Members_Entry.pack() # ----------- أدوات التحكم في معلومات الاتصال 2 ----------- # Manage_Frame = Frame(self.root, bg='white') # Manage_Frame.place(x=900, y=190, width=200, height=460) lbl_Nationality = Label(f2, text='الجنسية', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_Nationality.pack() Nationality_Entry = Entry(f2, textvariable=self.nationality_var, bd='2', bg='#05234f', fg='#fff', justify='center') Nationality_Entry.pack() lbl_ID_Photo = Label(f2, text='صورة الهوية', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_ID_Photo.pack() ID_Photo_Entry = Entry(f2, textvariable=self.id_photo_var, bd='2', bg='#05234f', fg='#fff', justify='center') ID_Photo_Entry.pack() lbl_Country = Label(f2, text='الدولة', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_Country.pack() Country_Entry = Entry(f2, textvariable=self.country_var, bd='2', bg='#05234f', fg='#fff', justify='center') Country_Entry.pack() lbl_State = Label(f2, text='الولاية / المحافظة', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_State.pack() State_Entry = Entry(f2, textvariable=self.governorate_var, bd='2', bg='#05234f', fg='#fff', justify='center') State_Entry.pack() lbl_City = Label(f2, text='المدينة', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_City.pack() City_Entry = Entry(f2, textvariable=self.city_var, bd='2', bg='#05234f', fg='#fff', justify='center') City_Entry.pack() lbl_Phone_Number = Label(f2, text='رقم الموبايل', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_Phone_Number.pack() Phone_Number_Entry = Entry(f2, textvariable=self.phone_var, bd='2', bg='#05234f', fg='#fff', justify='center') Phone_Number_Entry.pack() lbl_Skype = Label(f2, text='سكايب', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_Skype.pack() Skype_Entry = Entry(f2, textvariable=self.skype_var, bd='2', bg='#05234f', fg='#fff', justify='center') Skype_Entry.pack() lbl_Telegram = Label(f2, text='تلغرام', bg='#fff', fg='#05234f', font=('monospace', 14)) lbl_Telegram.pack() Telegram_Entry = Entry(f2, textvariable=self.telegram_var, bd='2', bg='#05234f', fg='#fff', justify='center') Telegram_Entry.pack() # ----------- buttons الأزرار ----------- btn_Frame = Frame(self.root, bg="#fff") btn_Frame.place(x=900, y=500, width=400, height=148) title2 = Label(btn_Frame, text='لوحة التحكم', font=('monospace', 16), bg='#316df4', fg='#fff') title2.pack(fill='x') add_btn = Button(btn_Frame, text='إضافة موظف', bg='#05234f', fg='#fff', cursor='plus', command=self.add_student) add_btn.place(x=280, y=50, width=80, height=30) del_btn = Button(btn_Frame, text='حذف موظف', bg='#05234f', fg='#fff', cursor='target') del_btn.place(x=165, y=50, width=80, height=30) update_btn = Button(btn_Frame, text='تعديل بيانات', bg='#05234f', fg='#fff', cursor='circle') update_btn.place(x=50, y=50, width=80, height=30) clear_btn = Button(btn_Frame, text='إفراغ الحقول', bg='#05234f', fg='#fff', cursor='sizing') clear_btn.place(x=280, y=100, width=80, height=30) exit_btn = Button(btn_Frame, text='إغلاق البرنامج', bg='#05234f', fg='#fff', cursor='cross') exit_btn.place(x=165, y=100, width=80, height=30) about_btn = Button(btn_Frame, text='من نحن', bg='#05234f', fg='#fff', cursor='heart', bitmap='info') about_btn.place(x=50, y=100, width=80, height=30) # ----------- search manage البحث ----------- search_Frame = Frame(self.root, bg="#fff") search_Frame.place(x=2, y=35, width=896, height=50) lbl_search = Label(search_Frame, text='البحث', font=('monospace', 16), bg='#fff', fg='#05234f') lbl_search.place(x=830, y=12) combo_search = ttk.Combobox(search_Frame, justify='right') combo_search['value']=('الرقم التسلسلي', 'الاسم', 'الإيميل', 'رقم الهوية', 'الجنس', 'الحالة الاجتماعية', 'المدينة', 'رقم الهاتف', 'المؤهل العلمي', 'الجامعة', 'نوع المهارة', 'المسمى الوظيفي', 'المعرفة المهنية', 'برامج التصميم', 'برامج المونتاج', 'مهارات البرمجة') combo_search.place(x=680, y=14) search_Entry = Entry(search_Frame, bd='2', bg='#05234f', fg='#fff', justify='right') search_Entry.place(x=545, y=14) search_btn = Button(search_Frame, text='بحث', bg='#05234f', fg='#fff', cursor='circle') search_btn.place(x=460, y=10, width=80, height=30) # ----------- dietals عرض النتائج والبيانات ----------- Dietals_Frame = Frame(self.root, bg="#fff") Dietals_Frame.place(x=2, y=88, width=896, height=560) # -------- scroll -------- scroll_x = Scrollbar(Dietals_Frame, orient=HORIZONTAL) scroll_y = Scrollbar(Dietals_Frame, orient=VERTICAL) # -------- treeview -------- self.student_table = ttk.Treeview(Dietals_Frame, columns=('Telegram', 'Skype', 'Phone', 'City', 'Governorate', 'Country', 'ID photo', 'Nationality', 'Family', 'Social Status', 'Gender', 'Date Birth', 'ID Number', 'E-mail', 'Name', 'ID'), xscrollcommand=scroll_x.set, yscrollcommand=scroll_y.set) self.student_table.place(x=20, y=2, width=890, height=540) scroll_x.pack(side=BOTTOM, fill='x') scroll_y.pack(side=LEFT, fill='y') scroll_x.config(command=self.student_table.xview) scroll_y.config(command=self.student_table.yview) self.student_table['show'] = 'headings' self.student_table.heading('Telegram', text='تلغرام') self.student_table.heading('Skype', text='سكايب') self.student_table.heading('Phone', text='رقم الموبايل') self.student_table.heading('City', text='المدينة') self.student_table.heading('Governorate', text='المحافظة') self.student_table.heading('Country', text='الدولة') self.student_table.heading('ID photo', text='صورة الهوية') self.student_table.heading('Nationality', text='الجنسية') self.student_table.heading('Family', text='عدد أفراد الأسرة') self.student_table.heading('Social Status', text='الحالة الاجتماعية') self.student_table.heading('Gender', text='الجنس') self.student_table.heading('Date Birth', text='تاريخ الميلاد') self.student_table.heading('ID Number', text='رقم الهوية') self.student_table.heading('E-mail', text='البريد الإلكتروني') self.student_table.heading('Name', text='الاسم') self.student_table.heading('ID', text='الرقم التسلسلي') # ----------- con + add ----------- self.fetch_all() def add_student(self): con = pymysql.connect( host = 'localhost', user = 'root', password = '', database = 'stud') cur = con.cursor() cur.execute("insert into student values(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",( self.id_var.get(), self.name_var.get(), self.mail_var.get(), self.id_number_var.get(), self.date_birth_var.get(), self.gender_var.get(), self.social_status_var.get(), self.family_var.get(), self.nationality_var.get(), self.id_photo_var.get(), self.country_var.get(), self.governorate_var.get(), self.city_var.get(), self.phone_var.get(), self.skype_var.get(), self.telegram_var.get() )) con.commit() con.close() def fetch_all(self): con = pymysql.connect(host='localhost', user = 'root', password = '', database = 'employ') cur = con.cursor() cur.execute('select * from employees') rows = cur.fetchall() if len (rows) !=0: self.student_table.delete(*self.student_table.get_children) for row in rows: self.student_table.insert("", END, value=row) con.commit() con.close() root = Tk() ob = Employee(root) root.mainloop()
ولكن بعد كتابة دالة جديدة لعرض تلك المدخلات على واجهة البرنامج :def fetch_all(self): con = pymysql.connect(host='localhost', user = 'root', password = '', database = 'employ') cur = con.cursor() cur.execute('select * from employees') rows = cur.fetchall() if len (rows) !=0: self.student_table.delete(*self.student_table.get_children) for row in rows: self.student_table.insert("", END, value=row) con.commit() con.close()
وعند استدعاء الدالة :
self.fetch_all()
يعطيني الخطأ التالي:
line 560, in fetch_all self.student_table.delete(*self.student_table.get_children) TypeError: tkinter.ttk.Treeview.delete() argument after * must be an iterable, not method
أرجو الإفادة
-
بارك الله فيك على المعلومات المقدمة
- 1
-
هناك نشاط أو اختبار بلغة بايثون عن تحليل البيانات Data Analysis
اقتباساستخدم بيانات USA_Housing.txt وقم بتنفيذ المهام التالية:
1. تحليل البيانات الاستكشافية (تأكد من كتابة استنتاجك من أي تحليل تقوم به)
2. إنشاء بيانات التدريب والاختبار باستخدام 80٪ من بيانات التدريب و 20٪ من بيانات الاختبار
3. استخدم مكتبة scipy أو statsmodels.api لإنشاء نموذج الانحدار الخطي
4. الإبلاغ عن أي مقياس تقييم واحد لبيانات الاختبار
5. كرر الخطوات 2 و 3 و 4 مع بيانات القطار والاختبار مع 95٪ من بيانات التدريب و 5٪ من بيانات الاختبار.
اشرح النموذج الذي تعتقد أنه أفضل ولماذا.
ارجو المساعدة ممن لديهم الخبرة في المجال
- 1
-
بتاريخ 26 دقائق مضت قال Hassan Hedr:
يعني نضع هذا الكود داخل كود html ام ملف لوحده ونربطه ونربطه عن طريق action
-
اقتباس
<?php
$text = new Text("your string");$chars_num = $text->charachters_num();
$words_num = $text->words_num();
$lines_num = $text->lines_num();?>
لو أردنا أن نجعل هذا البرنامج يعمل مع
<!DOCTYPE HTML> <html> <head> </head> <body> <h2>Text Analyzer</h2> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> <textarea name="comment" rows="5" cols="40"></textarea> <br><br> <input type="submit" name="submit" value="Analyzer!"> </form> </body> </html>
فورم ادخال نص وارساله ليرجع لنا قيم البرنامج
ماذا يمكن أن نضيف في الكود
-
كتابة نص بلغة PHP يقبل قيمة نصية وله 3 وظائف :
أ. الأحرف (): إرجاع عدد الأحرف.
ب. الكلمات (): إرجاع عدد الكلمات.
ج. الأسطر (): إرجاع عدد الأسطر.
اقتباسWrite a PHP class "Text" that accept a text value and have 3 methods:
a. characters(): Return the number of characters.
b. words(): Return the number of words.
c. lines(): Return the number of lines.
Usage Example: $text = new Text("This is a dummy text."); $words = $text->words();الرجاء الإفادة فضلاً
- 1
-
بتاريخ On 7/4/2021 at 14:28 قال Salah Eddin Berriani:
ما يمكن أن يسبب المشكل هو تسمية الملف بنفس اسم المكتبة مثلا pytube.py اذا كنت تسميه بهذه الطريقة فغير الاسم .
ان لم يكن ذلك ما يسبب الخطأ بالنسبة لك فقم بحذف المكتبة وثبتها مجددا
pip uninstall pytube
pip install pytube
ان لم يفلح معك ذلك قم بحذف المكتبة مجددا وثبت pytube3 f بدالها
pip uninstall pytube
pip install pytube3
صحيح تمام
بارك الله فيك
-
عند تشغيل كود البرنامج التالي :
from pytube import YouTube link = 'https://youtu.be/UxaUgDcZ2KI' # link = input("Please enter the video url: ") video = YouTube(link) print(f"The video title is:\n{video.title} \n------------------------------") print(f"The video description is:\n{video.description} \n------------------------------") print(f"The video views are:\n{video.views} \n------------------------------") print(f"The video rating is:\n{video.rating} \n------------------------------") print(f"The video duration is:\n{video.length} seconds \n------------------------------") # print(video.streams)
يظهر الخطأ التالي :
line 1, in <module> from pytube import YouTube ImportError: cannot import name 'YouTube' from partially initialized module 'pytube' (most likely due to a circular import) (D:\الدورات\Introduction to Python Programming\Projects\Youtube Downloader\pytube.py) Process finished with exit code 1
ما المشكلة هنا؟
-
بتاريخ On 4/4/2021 at 19:10 قال سامح أشرف:
قمت بتثبيتها على طريقة المهندس (Hasan Dayoub)
وعلى ما يبدو أنه تم تثبيتها لأنه ظهرت النتيجة التالية :
altgraph==0.17 future==0.18.2 pefile==2019.4.18 pyinstaller==4.2 pyinstaller-hooks-contrib==2021.1 pytube==10.6.1 pytube3==9.6.4 pywin32-ctypes==0.2.0 typing-extensions==3.7.4.3
كما في الصورة :
لكن هناك مشكلة عندما اشغل الكود يظهر التالي :
line 1, in <module> from pytube import YouTube ImportError: cannot import name 'YouTube' from partially initialized module 'pytube' (most likely due to a circular import) (D:\الدورات\Introduction to Python Programming\Projects\Youtube Downloader\pytube.py) Process finished with exit code 1
كما في الصورة :
ما المشكلة هنا؟
بتاريخ 2 ساعات قال Hasan Dayoub:اضغط على اشارة ال + في اسفل الشاشة، فتنقلك الى المكان المخصص لتنزيل المكتبة.
على ما يبدو أنه تم تثبيتها لأنه ظهرت النتيجة التالية :
٠٥/٠٤/٢١ ٠٩:٣١ م Packages installed successfully: Installed packages: 'pip' ٠٩:٣٤ م Packages installed successfully: Installed packages: 'pytube' ٠٩:٣٤ م Packages installed successfully: Installed packages: 'pytube3'
كما في الصورة :
لكن هناك مشكلة عندما اشغل الكود يظهر التالي :
line 1, in <module> from pytube import YouTube ImportError: cannot import name 'YouTube' from partially initialized module 'pytube' (most likely due to a circular import) (D:\الدورات\Introduction to Python Programming\Projects\Youtube Downloader\pytube.py) Process finished with exit code 1
كما في الصورة :
-
بتاريخ On 31/3/2021 at 22:27 قال سامح أشرف:
الخطأ الأول يقول أنه سيتم إستخدام 'setup.py install' بدلًا من تحميل ملف wheel وذلك لأن المكتبة wheel ليست مثبته، ويمكنك تثبيتها من خلال الأمر:
pip install wheel
وفي الجزء الثاني يخبرك أنك لا تستعمل آخر نسخة من pip
WARNING: You are using pip version 20.2.3; however, version 21.0.1 is available.
ويمكنك أن تقوم بتحديثه من خلال فتح CMD كمدير Run As Administrator وكتابة الأمر التالي:
pip install --upgrade pip
أو الأمر:
python -m pip install --upgrade --user pip
في النهاية يمكنك تثبيت مكتبة pytube من خلال الأمر:
pip install pytube
بالتوفيق.
قمت بكتابة بعض الأوامر على CMD قبل قراءة الرد وأصبح تعارض في إضافات plugins !!
فقمت بحذف ال Pycharm وتحميلة من جديد ثم رجعت بعد فتح ال CMD ووضعت الأمر :
pip install git+https://github.com/pytube/pytube
فأعطاني النتيجة التالية :
Collecting git+https://github.com/pytube/pytube Cloning https://github.com/pytube/pytube to c:\users\jit\appdata\local\temp\pip-req-build-6d6qt7ko Running command git clone -q https://github.com/pytube/pytube 'C:\Users\jit\AppData\Local\Temp\pip-req-build-6d6qt7ko'
!!!
صورة توضيحية
بتاريخ On 31/3/2021 at 22:36 قال Hasan Dayoub:يوجد عدة احتمالات للمشكلة.
احيانا يمكن حل المشكلة من خلال تحميل بعض المكتبات الداعمة للويندوز من هنا
كما يمكنك ان تقوم بتحميل المكتبة من خلال برنامج Pycharm ، وذلك بالذهاب الى
File > Settings > Python interpreter ثم البحث عن المكتبة و إضافتها.قمت بفتح ال Pycharm ثم تتبعت الأوامر File > Settings > Python interpreter
فظهر لي خيار المكتبة ولكن ام يظهر أمر تنزيل
اخترت المكتبة ولم يتغير شيء!!
صورة توضيحية :
- 1
-
أريد تنزيل مكتبة من مكتبات بايثون تدعى (pytube)
وعندما أضع أمر التنزيل [pip install git+https://github.com/pytube/pytube] في لوحة cmd يخرج الناتج التالي:
Collecting git+https://github.com/pytube/pytube Cloning https://github.com/pytube/pytube to c:\users\jit\appdata\local\temp\pip-req-build-w3q3fwqn Requirement already satisfied (use --upgrade to upgrade): pytube==10.6.1 from git+https://github.com/pytube/pytube in c:\users\jit\appdata\local\programs\python\python39\lib\site-packages Using legacy 'setup.py install' for pytube, since package 'wheel' is not installed. WARNING: You are using pip version 20.2.3; however, version 21.0.1 is available. You should consider upgrading via the 'c:\users\jit\appdata\local\programs\python\python39\python.exe -m pip install --upgrade pip' command.
فأقوم بكتابة ما يطلبة الناتج [pip install --upgrade pip] في لوحة cmd يخرج الناتج التالي:
Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 20.2.3 Uninstalling pip-20.2.3: Successfully uninstalled pip-20.2.3 ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'C:\\Users\\jit\\AppData\\Local\\Temp\\pip-uninstall-pnqylmmj\\pip.exe' Consider using the `--user` option or check the permissions.
صورة توضيحية :
وفي محاولة أخرى لتثبيتها قمت بكتابة الأمر في ال (Terminal) داخل برنامج (PyCharm) يخرج الناتج التالي:
Collecting git+https://github.com/pytube/pytube Cloning https://github.com/pytube/pytube to c:\users\jit\appdata\local\temp\pip-req-build-o5uke_cl Running command git clone -q https://github.com/pytube/pytube 'C:\Users\jit\AppData\Local\Temp\pip-req-build-o5uke_cl'
صورة توضيحية :
ولم أنجح في تثبيت المكتبة! وما السبب في ذلك؟ وكيف اصل إلى الحل؟
-
السلام عليكم ورحمه الله
أحتاج مساعدة في عمل برنامج Credit Card phpchecker cvv and expiration date with Php
المطلوب :
فحص البطاقة والتاريخ و cvv
واذا التاريخ غلط يطبع invalid expire dat
واذا السي في في غلط يطبع invalid Cvv
واذا صحيح يطبع Successful cardممكن نعملهم على برنامجين على نفس الموقع
برنامج expire date
وبرنامج cvv... ... ...
كود البرنامج موجود مرفق creditCard.php لكن نحتاج عمل الفورم وبعض التعديلات على الكود.
على من يجد عنده الكفاءة لذلك الرجاء الرد أو المراسلة.
وجزاكم الله خير
-
بتاريخ On 10/7/2020 at 23:30 قال آلاء مجدى إبراهيم:
ddBinary هو اسم ال function التى تقوم بجمع رقمين هما a , b
أكيد تمام بارك الله فيك
-
فعلا
تم الحل بنجاح
بارك الله فيك
- 1
-
كيف أجعل صفحة blog أو category تكرر بلوك المقالات begnation
في PHP
نشر
أقوم بتطوير قالب PHP wordpress ووصلت لصفحة category.php و archive.php
وعند طلب الصفحة يظهر أول مقال فقط وليس كل مقالات الموقع بناء على (category / author / tag)
أريد أن يظهر تكرر المقالات بشكل بلوك begnation
رغم أني كتبت لوب في الكود :
أرجو المساعدة