مدیریت خودکار حافظه در پایتون 🧠💡
در پایتون، مدیریت حافظه بهصورت خودکار انجام میشود. یعنی برخلاف زبانهای سطح پایین مثل C و C++، نیازی به تخصیص یا آزادسازی دستی حافظه نیست و این کار به لطف سیستم مدیریت حافظه خودکار انجام میشود. این سیستم شامل شمارش ارجاعات و جمعآوری زبالهها میباشد. بیایید بهصورت کامل این دو مکانیزم را بررسی کنیم:
🔹 بخش اول: شمارش ارجاعات (Reference Counting)
پایتون از شمارش ارجاعات برای مدیریت حافظه استفاده میکند. هر شی در پایتون دارای یک شمارشگر است که تعداد ارجاعات به آن شی را نشان میدهد. وقتی مقدار شمارش ارجاعات به صفر برسد، یعنی دیگر هیچ بخشی از برنامه به آن شی نیاز ندارد و پایتون میتواند حافظه آن را آزاد کند.
چطور شمارش ارجاعات کار میکند؟
- هر زمان که یک متغیر به شیای اشاره میکند، شمارش ارجاعات آن شی افزایش مییابد.
- وقتی ارجاعی حذف میشود، شمارش ارجاعات کاهش مییابد.
- زمانی که شمارش به صفر برسد، پایتون حافظه را آزاد میکند.
مثال:
مزیتها:
- *سریع و کارآمد*: شمارش ارجاعات بسیار سریع است و بهصورت همزمان با اجرای برنامه انجام میشود.
چالشها:
- *حلقههای مرجع*: اگر دو یا چند شی به صورت چرخهای به یکدیگر ارجاع دهند، ممکن است باعث شود که حافظه هرگز آزاد نشود؛ چون شمارش ارجاعات آنها هیچ وقت به صفر نمیرسد.
🔹 بخش دوم: جمعآوری زبالهها (Garbage Collection)
پایتون از یک سیستم جمعآوری زبالههای دورانی برای پاکسازی حافظه اشیاء بدون ارجاع استفاده میکند که شمارش ارجاعات به تنهایی قادر به آزادسازی آنها نیست.
چطور جمعآوری زبالهها کار میکند؟
- حلقههای مرجع: برای حل مشکل حلقههای مرجع، پایتون از جمعآوری زبالهها استفاده میکند. این مکانیزم دورهای اجرا شده و حلقههای ارجاعی را شناسایی و آزاد میکند.
- ماژول gc: پایتون از ماژول داخلی
مثال: اجرای دستی جمعآوری زبالهها
مزیتها:
- *حذف حلقههای مرجع*: این مکانیزم باعث میشود که حافظه اشیائی که در حلقههای مرجع هستند آزاد شود.
🔹 بهینهسازی حافظه: بهترین تمرینها
برای بهینهسازی استفاده از حافظه، این نکات را در نظر بگیرید:
1. پاکسازی متغیرهای غیرضروری: متغیرهایی که دیگر نیازی به آنها ندارید را با
2. کپیهای غیرضروری را حذف کنید: از کپیهای سطحی و عمیق تنها در مواقع نیاز استفاده کنید.
3. ماژول gc: میتوانید در برنامههای طولانیمدت و پیچیده، با
4. Weak References: در مواقعی که نیازی به جلوگیری از جمعآوری زباله ندارید، از weak referenceها استفاده کنید.
🔹 جمعبندی 📜
مدیریت خودکار حافظه در پایتون به لطف شمارش ارجاعات و جمعآوری زبالهها انجام میشود. این سیستم به شما اجازه میدهد که بدون نگرانی از مدیریت دستی حافظه، برنامههایی قابل اعتماد و بهینه بسازید. به کمک نکات بالا و ابزارهایی مثل
برای آموزشهای بیشتر و مباحث حرفهایتر برنامهنویسی، به کانال ما بپیوندید 📢
🔗 [لینک کانال تلگرام]
#PythonMemory #MemoryManagement #GarbageCollection #Python
در پایتون، مدیریت حافظه بهصورت خودکار انجام میشود. یعنی برخلاف زبانهای سطح پایین مثل C و C++، نیازی به تخصیص یا آزادسازی دستی حافظه نیست و این کار به لطف سیستم مدیریت حافظه خودکار انجام میشود. این سیستم شامل شمارش ارجاعات و جمعآوری زبالهها میباشد. بیایید بهصورت کامل این دو مکانیزم را بررسی کنیم:
🔹 بخش اول: شمارش ارجاعات (Reference Counting)
پایتون از شمارش ارجاعات برای مدیریت حافظه استفاده میکند. هر شی در پایتون دارای یک شمارشگر است که تعداد ارجاعات به آن شی را نشان میدهد. وقتی مقدار شمارش ارجاعات به صفر برسد، یعنی دیگر هیچ بخشی از برنامه به آن شی نیاز ندارد و پایتون میتواند حافظه آن را آزاد کند.
چطور شمارش ارجاعات کار میکند؟
- هر زمان که یک متغیر به شیای اشاره میکند، شمارش ارجاعات آن شی افزایش مییابد.
- وقتی ارجاعی حذف میشود، شمارش ارجاعات کاهش مییابد.
- زمانی که شمارش به صفر برسد، پایتون حافظه را آزاد میکند.
مثال:
a = [1, 2, 3]
b = a # شمارش ارجاعات به شی لیست افزایش مییابد
del a # شمارش ارجاعات کاهش مییابد
مزیتها:
- *سریع و کارآمد*: شمارش ارجاعات بسیار سریع است و بهصورت همزمان با اجرای برنامه انجام میشود.
چالشها:
- *حلقههای مرجع*: اگر دو یا چند شی به صورت چرخهای به یکدیگر ارجاع دهند، ممکن است باعث شود که حافظه هرگز آزاد نشود؛ چون شمارش ارجاعات آنها هیچ وقت به صفر نمیرسد.
🔹 بخش دوم: جمعآوری زبالهها (Garbage Collection)
پایتون از یک سیستم جمعآوری زبالههای دورانی برای پاکسازی حافظه اشیاء بدون ارجاع استفاده میکند که شمارش ارجاعات به تنهایی قادر به آزادسازی آنها نیست.
چطور جمعآوری زبالهها کار میکند؟
- حلقههای مرجع: برای حل مشکل حلقههای مرجع، پایتون از جمعآوری زبالهها استفاده میکند. این مکانیزم دورهای اجرا شده و حلقههای ارجاعی را شناسایی و آزاد میکند.
- ماژول gc: پایتون از ماژول داخلی
gc
برای اجرای جمعآوری زباله استفاده میکند. این ماژول بهطور خودکار در پسزمینه کار میکند.مثال: اجرای دستی جمعآوری زبالهها
import gc
gc.collect() # اجرای دستی جمعآوری زباله
مزیتها:
- *حذف حلقههای مرجع*: این مکانیزم باعث میشود که حافظه اشیائی که در حلقههای مرجع هستند آزاد شود.
🔹 بهینهسازی حافظه: بهترین تمرینها
برای بهینهسازی استفاده از حافظه، این نکات را در نظر بگیرید:
1. پاکسازی متغیرهای غیرضروری: متغیرهایی که دیگر نیازی به آنها ندارید را با
del
حذف کنید تا شمارش ارجاعات کاهش یابد.2. کپیهای غیرضروری را حذف کنید: از کپیهای سطحی و عمیق تنها در مواقع نیاز استفاده کنید.
3. ماژول gc: میتوانید در برنامههای طولانیمدت و پیچیده، با
gc.collect()
حافظه را بهینه کنید.4. Weak References: در مواقعی که نیازی به جلوگیری از جمعآوری زباله ندارید، از weak referenceها استفاده کنید.
🔹 جمعبندی 📜
مدیریت خودکار حافظه در پایتون به لطف شمارش ارجاعات و جمعآوری زبالهها انجام میشود. این سیستم به شما اجازه میدهد که بدون نگرانی از مدیریت دستی حافظه، برنامههایی قابل اعتماد و بهینه بسازید. به کمک نکات بالا و ابزارهایی مثل
gc
میتوانید مدیریت حافظه را بهتر درک کرده و از آن بهینهتر استفاده کنید.برای آموزشهای بیشتر و مباحث حرفهایتر برنامهنویسی، به کانال ما بپیوندید 📢
🔗 [لینک کانال تلگرام]
#PythonMemory #MemoryManagement #GarbageCollection #Python
❤1
پارت 1: آموزش SQL با پایتون (پایه)
👨💻 SQL یا Structured Query Language زبان استانداردی برای کار با پایگاههای داده است که به ما اجازه میدهد دادهها را ایجاد، خواندن، بروزرسانی و حذف کنیم (CRUD operations). در این پارت، میخواهیم SQL را در پایتون به کمک کتابخانه
1️⃣ شروع کار با
برای شروع، باید ابتدا کتابخانه
بعد از وارد کردن کتابخانه، برای اتصال به یک پایگاه داده، از تابع
در کد بالا:
-
- اگر فایل پایگاه داده با این نام وجود نداشته باشد، به صورت خودکار ایجاد خواهد شد.
-
2️⃣ ایجاد یک جدول جدید
برای ایجاد یک جدول در پایگاه داده، از دستور SQL
در این کد:
-
-
3️⃣ وارد کردن دادهها در جدول
حالا که جدول خود را ایجاد کردهایم، میتوانیم دادهها را به آن وارد کنیم. از دستور SQL
در این کد:
-
- مقادیر به صورت یکتایپ در لیست وارد میشوند.
4️⃣ خواندن دادهها از جدول
برای خواندن دادهها از جدول، از دستور SQL
در این کد:
-
-
5️⃣ بستن اتصال
پس از انجام تمام عملیات، بهتر است که اتصال به پایگاه داده را ببندیم:
📚 خلاصه پارت 1:
- یاد گرفتیم که چطور به پایگاه داده متصل شویم.
- نحوه ایجاد یک جدول و وارد کردن دادهها را بررسی کردیم.
- چطور دادهها را از پایگاه داده بخوانیم.
- در نهایت اتصال به پایگاه داده را بستیم.
🔜 در پارت بعدی، به بررسی دستورات پیشرفتهتر SQL و نحوه بروزرسانی و حذف دادهها خواهیم پرداخت.
#SQL #Python #SQLite #Database
👨💻 SQL یا Structured Query Language زبان استانداردی برای کار با پایگاههای داده است که به ما اجازه میدهد دادهها را ایجاد، خواندن، بروزرسانی و حذف کنیم (CRUD operations). در این پارت، میخواهیم SQL را در پایتون به کمک کتابخانه
sqlite3
یاد بگیریم. این کتابخانه برای کار با پایگاه دادههای SQLite در پایتون بسیار مفید است و در اکثر سیستمها به صورت پیشفرض نصب شده است. 1️⃣ شروع کار با
sqlite3
برای شروع، باید ابتدا کتابخانه
sqlite3
را وارد کنیم:import sqlite3
بعد از وارد کردن کتابخانه، برای اتصال به یک پایگاه داده، از تابع
connect()
استفاده میکنیم:# اتصال به پایگاه داده (اگر فایل پایگاه داده وجود نداشته باشد، ساخته میشود)
conn = sqlite3.connect('example.db')
# ایجاد یک cursor برای اجرای دستورات SQL
cursor = conn.cursor()
در کد بالا:
-
example.db
نام فایل پایگاه داده است.- اگر فایل پایگاه داده با این نام وجود نداشته باشد، به صورت خودکار ایجاد خواهد شد.
-
cursor
یک شی است که میتوان از آن برای اجرای دستورات SQL استفاده کرد.2️⃣ ایجاد یک جدول جدید
برای ایجاد یک جدول در پایگاه داده، از دستور SQL
CREATE TABLE
استفاده میکنیم. فرض کنید میخواهیم یک جدول برای ذخیره اطلاعات کاربر مانند نام، سن و ایمیل ایجاد کنیم:# ایجاد یک جدول جدید
cursor.execute('''CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER,
email TEXT)''')
# ذخیره تغییرات در پایگاه داده
conn.commit()
در این کد:
-
IF NOT EXISTS
به این معناست که اگر جدول قبلاً ایجاد شده باشد، دوباره ایجاد نمیشود.-
id
یک ستون است که به عنوان کلید اصلی (Primary Key) برای هر رکورد استفاده میشود و به طور خودکار افزایش مییابد (AUTOINCREMENT
).3️⃣ وارد کردن دادهها در جدول
حالا که جدول خود را ایجاد کردهایم، میتوانیم دادهها را به آن وارد کنیم. از دستور SQL
INSERT INTO
استفاده میکنیم:# وارد کردن دادهها در جدول
cursor.execute("INSERT INTO users (name, age, email) VALUES (?, ?, ?)", ('Ali', 25, '[email protected]'))
# ذخیره تغییرات
conn.commit()
در این کد:
-
?
ها به عنوان جایگزین برای مقادیر استفاده میشوند و از تزریق SQL جلوگیری میکنند.- مقادیر به صورت یکتایپ در لیست وارد میشوند.
4️⃣ خواندن دادهها از جدول
برای خواندن دادهها از جدول، از دستور SQL
SELECT
استفاده میکنیم:# خواندن دادهها از جدول
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
# نمایش دادهها
for row in rows:
print(row)
در این کد:
-
SELECT * FROM users
تمام دادههای جدول users
را انتخاب میکند.-
fetchall()
تمام نتایج را به صورت یک لیست از تاپلها برمیگرداند.5️⃣ بستن اتصال
پس از انجام تمام عملیات، بهتر است که اتصال به پایگاه داده را ببندیم:
# بستن اتصال به پایگاه داده
conn.close()
📚 خلاصه پارت 1:
- یاد گرفتیم که چطور به پایگاه داده متصل شویم.
- نحوه ایجاد یک جدول و وارد کردن دادهها را بررسی کردیم.
- چطور دادهها را از پایگاه داده بخوانیم.
- در نهایت اتصال به پایگاه داده را بستیم.
🔜 در پارت بعدی، به بررسی دستورات پیشرفتهتر SQL و نحوه بروزرسانی و حذف دادهها خواهیم پرداخت.
#SQL #Python #SQLite #Database
👍2
پارت 2: آموزش SQL با پایتون (بروزرسانی و حذف دادهها)
👨💻 در پارت اول با نحوه ایجاد جدول، وارد کردن دادهها و خواندن دادهها از پایگاه داده آشنا شدیم. حالا در این پارت به بررسی دستورات بروزرسانی و حذف دادهها در پایگاه داده خواهیم پرداخت.
1️⃣ بروزرسانی دادهها (UPDATE)
اگر بخواهیم دادهای را که قبلاً وارد کردهایم، تغییر دهیم، از دستور **
در این کد:
-
-
- مانند قبل، برای جلوگیری از تزریق SQL از
2️⃣ حذف دادهها (DELETE)
برای حذف دادهها از پایگاه داده، از دستور **
در این کد:
-
-
⚠️ توجه داشته باشید که دستور
3️⃣ حذف تمام دادهها از جدول (Truncate)
اگر بخواهیم تمام دادهها را از یک جدول حذف کنیم، میتوانیم اDELETE
یا برای حذف ساختار جدول و دادهها:
در اینجا:
-
-
4️⃣ جستجوی دادهها با شرطهای مختلف
برای جستجوی دادهها به صورت خاصتر، میتوانیم اSELECT
در این کد:
-
- برای مرتبسازی صعودی از
5️⃣ بستن اتصال
در نهایت، پس از انجام عملیاتهای مورد نظر، باید اتصال به پایگاه داده را ببندیم:
📚 **خلاصه پارت 2**:
- در این پارت یاد گرفتیم که چگونه UPDATE با دستور **
- نحوه حذف DELETE با دستور **
- برای حذف تمام دادهها یا DELETEز دDROP*
- یاد گرفتیم که چگونه دادهها را جستجو کرده و مرتب کنیم.
🔜 در صورتی که بخواهید در مورد SQL بیشتر یاد بگیرید، میتوانید به مستندات رسمی SQL یا آموزشهای پیشرفتهتر مراجعه کنید.
#SQL #Python #SQLite #Database
👨💻 در پارت اول با نحوه ایجاد جدول، وارد کردن دادهها و خواندن دادهها از پایگاه داده آشنا شدیم. حالا در این پارت به بررسی دستورات بروزرسانی و حذف دادهها در پایگاه داده خواهیم پرداخت.
1️⃣ بروزرسانی دادهها (UPDATE)
اگر بخواهیم دادهای را که قبلاً وارد کردهایم، تغییر دهیم، از دستور **
UPDATE
** استفاده میکنیم. مثلاً فرض کنید میخواهیم سن کاربری که نامش "Ali" است را تغییر دهیم.# بروزرسانی دادهها
cursor.execute("UPDATE users SET age = ? WHERE name = ?", (30, 'Ali'))
# ذخیره تغییرات
conn.commit()
در این کد:
-
SET age = ?
به این معناست که مقدار سن تغییر میکند.-
WHERE name = ?
مشخص میکند که فقط رکوردهایی که نام آنها "Ali" است تغییر خواهند کرد.- مانند قبل، برای جلوگیری از تزریق SQL از
?
استفاده کردهایم و مقادیر را به صورت پارامتر میفرستیم.2️⃣ حذف دادهها (DELETE)
برای حذف دادهها از پایگاه داده، از دستور **
DELETE
** استفاده میکنیم. فرض کنید میخواهیم رکورد کاربری که نامش "Ali" است را حذف کنیم.# حذف دادهها
cursor.execute("DELETE FROM users WHERE name = ?", ('Ali',))
# ذخیره تغییرات
conn.commit()
در این کد:
-
DELETE FROM users
تمام دادهها را از جدول users
حذف میکند.-
WHERE name = ?
به این معناست که فقط رکوردهایی که نام آنها "Ali" است حذف میشوند.⚠️ توجه داشته باشید که دستور
DELETE
بدون استفاده از WHERE
، تمام رکوردها را حذف میکند. پس باید حتماً دقت کنید که از WHERE
به درستی استفاده کنید تا فقط رکوردهای مورد نظر حذف شوند.3️⃣ حذف تمام دادهها از جدول (Truncate)
اگر بخواهیم تمام دادهها را از یک جدول حذف کنیم، میتوانیم اDELETE
DELETE
** استفاده کنیم بدون اینکه شرطی بگذاریم یا اDROP**DROP
** برای حذف جدول استفاده کنیم.# حذف تمام دادهها از جدول
cursor.execute("DELETE FROM users")
# ذخیره تغییرات
conn.commit()
یا برای حذف ساختار جدول و دادهها:
# حذف جدول از پایگاه داده
cursor.execute("DROP TABLE IF EXISTS users")
# ذخیره تغییرات
conn.commit()
در اینجا:
-
DELETE FROM users
تمام دادهها را از جدول حذف میکند، اما ساختار جدول باقی میماند.-
DROP TABLE IF EXISTS users
جدول users
را به طور کامل حذف میکند، حتی اگر دادهها داخل آن باشند.4️⃣ جستجوی دادهها با شرطهای مختلف
برای جستجوی دادهها به صورت خاصتر، میتوانیم اSELECT
SELECT
** با شرطهای مختلWHERE*WHERE
**، **LIKE
**، و **ORDER BY
** استفاده کنیم. به عنوان مثال، فرض کنید میخواهیم کاربران را بر اساس سن مرتب کنیم:# جستجو و مرتبسازی دادهها
cursor.execute("SELECT * FROM users ORDER BY age DESC")
rows = cursor.fetchall()
# نمایش دادهها
for row in rows:
print(row)
در این کد:
-
ORDER BY age DESC
دادهها را بر اساس سن به صورت نزولی مرتب میکند.- برای مرتبسازی صعودی از
ASC
استفاده میشود که به طور پیشفرض است.5️⃣ بستن اتصال
در نهایت، پس از انجام عملیاتهای مورد نظر، باید اتصال به پایگاه داده را ببندیم:
# بستن اتصال به پایگاه داده
conn.close()
📚 **خلاصه پارت 2**:
- در این پارت یاد گرفتیم که چگونه UPDATE با دستور **
UPDATE
** بروزرسانی کنیم.- نحوه حذف DELETE با دستور **
DELETE
** بررسی کردیم.- برای حذف تمام دادهها یا DELETEز دDROP*
DELETE
** و **DROP
** استفاده کردیم.- یاد گرفتیم که چگونه دادهها را جستجو کرده و مرتب کنیم.
🔜 در صورتی که بخواهید در مورد SQL بیشتر یاد بگیرید، میتوانید به مستندات رسمی SQL یا آموزشهای پیشرفتهتر مراجعه کنید.
#SQL #Python #SQLite #Database
👍3
هشینگ یک تکنیک فوقالعاده قدرتمند است که میتواند سرعت دسترسی به دادهها را به طور چشمگیری افزایش دهد. با استفاده از هشمپها و هشینگ، میتوانید پایگاه دادههای بزرگ را بهراحتی مدیریت کنید و از جستوجوهای خطی و زمانبر جلوگیری کنید. این روش در دنیای دادههای بزرگ و سیستمهای پیچیده بهطور گستردهای استفاده میشود و میتواند به شما کمک کند که حتی با سیستمهای معمولی، از سرعت بالای پردازش دادهها بهرهمند شوید.
امیدوارم که این آموزش برای شما مفید بوده باشد! 🌟 اگر سوالی دارید یا نیاز به توضیحات بیشتر دارید، حتماً در کامنتها مطرح کنید. 💬
🌟 برای یادگیری بیشتر و آموزشهای جذابتر به کانال ما بپیوندید!
#هشینگ #برنامه_نویسی #Python #کامپیوتر #پایگاه_داده #الگوریتم #پیشرفت #تکنولوژی
امیدوارم که این آموزش برای شما مفید بوده باشد! 🌟 اگر سوالی دارید یا نیاز به توضیحات بیشتر دارید، حتماً در کامنتها مطرح کنید. 💬
🌟 برای یادگیری بیشتر و آموزشهای جذابتر به کانال ما بپیوندید!
#هشینگ #برنامه_نویسی #Python #کامپیوتر #پایگاه_داده #الگوریتم #پیشرفت #تکنولوژی
Telegram
Python3
🎓 آموزش و پروژههای Python
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
آموزشهای کاربردی و پروژههای عملی Python برای همه سطوح. 🚀
👍2
Forwarded from چنل پایتون | جنگو | برنامه نویسی وب سایت | HTML & CSS & JS (AmirRM)
تبدیل فایل Py به EXE
بعضی اوقات لازم هست که فایل پایتونیمون رو تبدیل به یک فایل EXE کنیم تا راحت بتونیم اجراش کنیم. برای این کار ابزارهای زیادی هست، ولی یکی از راحتترین و بیدردسرترین روشها استفاده از cx_Freeze هست. حالا بریم ببینیم چطوری میشه ازش استفاده کرد.
خب طبیعی هست که اول باید ابزار رو نصب کنیم. توی ترمینال این دستور رو میزنیم:
pip install cx_Freeze
بعد از نصب، باید یه فایل بسازیم به اسم setup.py که قراره تنظیمات تبدیل پروژه رو توش بنویسیم. اگه برنامهمون سادهست این کد کفایت میکنه:
from cx_Freeze import setup, Executable
setup(
name="اسم برنامه",
version="ورژن برنامه",
description="یک توضیح درباره برنامه",
executables=[Executable("main.py")]
)
ولی اگه برنامهمون از کتابخونههای گرافیکی استفاده میکنه، اون وقت فایل setup.py باید یک ذره فرق داشته باشه:
from cx_Freeze import setup, Executable
import sys
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup(
name="اسم برنامه",
version="ورژن",
description="توضیحات",
executables=[Executable("main.py", base=base)]
)
نکته مهم: فایلی که میخواهید تبدیلش کنید باید اسمش main.py باشه. البته میتونید اسم دیگه هم بدید، ولی اون موقع باید توی قسمت Executable اسم دقیق فایل رو بنویسید.
حالا ترمینال رو باز کنید، وارد مسیر اون فایل شید و این دستور رو بزنید:
python setup.py build
یه پوشه به اسم build ساخته میشه که داخلش نسخهی EXE برنامه هست😉
یک روش سادهتر هم هست که دیگه نیاز به فایل setup نداره.
که دستورش این هست:
cxfreeze --script hello.py --target-dir dist
اینجوری مستقیم فایل EXE ساخته میشه و نیاز به فایل setup.py نیست.
البته توی صفحه رسمیش سوییچهای دیگه هم گذاشته شده که میتونید ازشون استفاده کنید:
https://cx-freeze.readthedocs.io/en/stable/script.html
🔖 #Python, #پایتون
👤 @Amir_123_ka
💎 Channel:
https://t.iss.one/programming_languages390
بعضی اوقات لازم هست که فایل پایتونیمون رو تبدیل به یک فایل EXE کنیم تا راحت بتونیم اجراش کنیم. برای این کار ابزارهای زیادی هست، ولی یکی از راحتترین و بیدردسرترین روشها استفاده از cx_Freeze هست. حالا بریم ببینیم چطوری میشه ازش استفاده کرد.
خب طبیعی هست که اول باید ابزار رو نصب کنیم. توی ترمینال این دستور رو میزنیم:
pip install cx_Freeze
بعد از نصب، باید یه فایل بسازیم به اسم setup.py که قراره تنظیمات تبدیل پروژه رو توش بنویسیم. اگه برنامهمون سادهست این کد کفایت میکنه:
from cx_Freeze import setup, Executable
setup(
name="اسم برنامه",
version="ورژن برنامه",
description="یک توضیح درباره برنامه",
executables=[Executable("main.py")]
)
ولی اگه برنامهمون از کتابخونههای گرافیکی استفاده میکنه، اون وقت فایل setup.py باید یک ذره فرق داشته باشه:
from cx_Freeze import setup, Executable
import sys
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup(
name="اسم برنامه",
version="ورژن",
description="توضیحات",
executables=[Executable("main.py", base=base)]
)
نکته مهم: فایلی که میخواهید تبدیلش کنید باید اسمش main.py باشه. البته میتونید اسم دیگه هم بدید، ولی اون موقع باید توی قسمت Executable اسم دقیق فایل رو بنویسید.
حالا ترمینال رو باز کنید، وارد مسیر اون فایل شید و این دستور رو بزنید:
python setup.py build
یه پوشه به اسم build ساخته میشه که داخلش نسخهی EXE برنامه هست😉
یک روش سادهتر هم هست که دیگه نیاز به فایل setup نداره.
که دستورش این هست:
cxfreeze --script hello.py --target-dir dist
اینجوری مستقیم فایل EXE ساخته میشه و نیاز به فایل setup.py نیست.
البته توی صفحه رسمیش سوییچهای دیگه هم گذاشته شده که میتونید ازشون استفاده کنید:
https://cx-freeze.readthedocs.io/en/stable/script.html
🔖 #Python, #پایتون
👤 @Amir_123_ka
💎 Channel:
https://t.iss.one/programming_languages390
Telegram
چنل پایتون | جنگو | برنامه نویسی وب سایت | HTML & CSS & JS
ارتباط با مدیر:
@Amir_1234_ka
@Amir_1234_ka