python

اینجا قراره هر چی نکته درباره پایتون یاد میگیرم رو باهاتون به اشتراک بذارم.

سایت های آموزشی

بهترین مرجع از دید من سایت tutorialspoint است. بسیار ساده و روون کارش رو شروع کرده و برای کسایی که دوست دارن به صورت سریع فقط کلیات رو یاد بگیرن عالیه.هر چند برای درک عمیق تر فقط و فقط داکیومنت های خود سایت پایتون قابل اتکا هست.و البته تو این لینک هم میتونید مطالب خوبی یاد بگیرید.

برای دیدن کلیه سایت های آموزشی پایتون به اینجا مراجعه کنید.

بهترین ide ها

  • sublime text
  • pycharm
  • اکلیپس به کمک افزونه(pydev)
  • spyder
  • gedit

اینم لیست کامل آی.دی ای ها به انضمام تمام ویژگی هایی که هر کدمشون ساپورت میکنن.

فریمورک های gui

بعضی ها ممکنه دوست داشته باشن برنامه های گرافیکال بنویسن با پایتون.واسه این کار تولکیت ها و فریمورک های متنوعی پیش روی شماست.با من همراه باشید تا در ادامه به بررسی چند تا از محبوب ترین هاشون بپردازیم.

فریمورک pyGObject

که جایگزینی واسه فریمورک قدیمی تر pyGTK هست.نسخه سه به بعد پایتون رو ساپورت میکنه و میتونید از glade هم در کنارش استفاده کنید و فایل های ترسمی تون رو توش ایمپورت کنید.(یه آموزش کامل از گلید)

برای خوندن رفرنس api هاش به اینجا مراجعه کنید.و برای خوندن آموزش هاشش به اینجا.(این هم ویکی گنوم بخش PyGObject)

فریمورک kivy

این فریمورک که جز محبوب ترین های حال حاضر است به عنوان چهارچوب توسعه مولتی پلتفرمی شناخته می شود به طوری که می توانید به صورت همزمان برای pc androi ios کد بزنید.برای شروع به کار به اینجا بروید.

فریمورک PyQT

فریمورکی بسیار محبوب که بر اساس جعبه ابزار qt و مختص پایتون توسعه داده شده است.(یه لینک خوب واسه آموزش سریع)

برای مقایسه بین انواع فریمورک های gui به اینجا و اینجا مراجعه کنید

دستورات کاربردی pip

آپگرید یک بسته بخصوص:

pip install --upgrade somepackag

لیست بسته های outdate شده:

pip list --outdated

برای مشاهده لیست تمامی ورژن های یک بسته بخصوص:

pip install prettytable==wtf 

تعداد بسته های نصب شده:

pip list | wc -l 

حذف بسته بهمراه تمام وابستگی هایش:(بسته pip-autoremove رو باید نصب کنید.)

sudo pip-autoremove tvdoon -y 

انتشار بسته در مخازن pipy

فرض کنید برنامه ای نوشته اید و میخواهید آنرا در مخازن رسمی پایتون قرار دهید.برای اینکار آموزش های فراوانی وجود دارد.از جمله اینجا و اینجا.

اما نکته قابل توجه زمانی هست که شما بسته تونو پابلیش کردین و بعد از مدتی میخواین اونو آپدیت کنید.روال کار به این صورت هست:

  1. فایل setup.py رو باز میکنید و آرایه های version و download_url رو مطابق نسخه جدید بروز میکنید.
  2. تغییرات خود را کامیت می کنید و برایش در گیت هاب تگ می زنید.
  3. دستورات زیر را میزنید:
python setup.py register -r pypitest
python setup.py sdist upload -r pypitest
python setup.py sdist upload -r pypi
pip install simplestatistics

troubleshoting

اگه بسته پایه ای رو حذف کردین و به مشکل خوردین.مثلا:

 ❯ pip list                                                                                                                                                  [10:00:29]
Traceback (most recent call last):
  File "/usr/bin/pip", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 70, in <module>
    import packaging.version
ModuleNotFoundError: No module named 'packaging'

باید از طریق پکمن و با آپشن force--‌بسته ها رو دوباره نصب کنید:

sudo pacman -S python-appdirs --force

نوشتن برنامه های چند نخی و غیرهمزمان

  1. https://www.blog.pythonlibrary.org/2016/07/26/python-3-an-intro-to-asyncio/
  2. https://docs.python.org/3/library/asyncio-task.html
  3. http://stackabuse.com/python-async-await-tutorial/
  4. https://snarky.ca/how-the-heck-does-async-await-work-in-python-3-5/
  5. https://makina-corpus.com/blog/metier/2015/python-http-server-with-the-new-async-await-syntax

test frameworks

  1. http://robotframework.org/#libraries

مباحث تکمیلی

  1. مخازن رسمی
  2. مخازن تست
  3. User_guide
  4. کار با joson
  5. کار با کتابخانه request
  6. How to convert JSON data into a Python object

  7. why-are-pythons-private-methods-not-actually-private
  8. how-to-dynamically-load-a-python-class
  9. https://mail.python.org/pipermail/tutor/2003-October/025932.html
  10. Making a request to a RESTful API using python

  11. api-integration-in-python/
  12. http://peterdowns.com/posts/first-time-with-pypi.html