شمشاد

داده جمع می‌کنم، بلکه یاد بگیرم زندگی‌ رو !!

استفاده از چندین نسخه پایتون به‌صورت همزمان در ویندوز

گاها نیاز می‌شه از چند نسخه مختلف پایتون در یک سیستم استفاده کرد، مخصوصا وقتی که از پایتون 2 و پایتون  3 به صورت همزمان استفاد می‌شود. انجام این‌کار تو لینوکس نسبتا ساده هست ولی در ویندوز به ابزاری به اسم Python Launcher نیاز هست. این برنامه توسط Vinay Sajip نوشته شده است. و از نسخه 3.3 به بعد به همراه پایتون از طریق نصاب نصب می‌شود، البته گاها در بعضی نسخه‌ها این ابزار به صورت آپشن بوده و باید هنگام نصب توسط کاربر انتخاب شود.  python Luncher  شامل دو فایل py.exe (که برای اجرای python.exe به کار می‌رود.) و pyw.exe (که برای اجرای pythonw.exe به کار می‌رود.) هست. چنان که این ابزار به همراه پایتون نصب شود، محل قرارگیری این دو فایل در دایرکتوری اصلی Windowsخواهد بود.

Python Launcher

 همچنین می‌توان این برنامه را با دانلود از سایت نویسنده برنامه نصب کرد.  صفحه دانلود Python Launcher از سایت اصلی:

https://bitbucket.org/vinay.sajip/pylauncher/downloads/

خود من در دانلود این برنامه مشکل داشتم برا همین این فایل‌ها رو آپلود کردم تا مورد استفاده دوستان قرار بگیرد. لینک دانلود نصاب Python Launcher نسخه 64 بیتی:

http://uploadboy.me/mz7kg0wjpeev/Python_launcher-1.0.1.6.amd64.msi.html

لینک دانلود نسخه 32 بیتی:

http://uploadboy.me/f25t2nzvqst2/Python_launcher-1.0.1.6.msi.html

باید بعد از نصب مطمئن شوید که دایرکتوری برنامه به متغیر path سیستم اضافه شده است، در غیر این صورت به صورت دستی این کار را بکنید.

استفاده از  Python Launcher:

قالب کلی به این صورت است که ابتدا فرمان "py" سپس نسخه پایتون به صورت "y.x-" وارد می‌شود. بطور مثال:

py -2.7

چنان که قصد استفاده از آخرین نسخه از پایتون 3 و یا 2 نصب شده را دارید نیاز به زدن قسمت اعشار نسخه نیست:

py -3

 با زدن آرگومان "32-" و یا "64-" می‌توانید نسخه 32 بیتی یا 64 بیتی پایتون را انتخاب کنید:

py -2 -32 MyScript.py

تنظیم Python Launcher:

به استناد داکیومنت‌های پایتون در بعضی نسخه‌ها یک فایل کانفیگ به اسم py.ini نیز هست که می‌توان از طریق آن تنظیمات جالب و کاربردی از طریق این برنامه انجام داد. آدرس فایل کانفیگ در ویندوزهای بالاتر از ویستا:

%USERPROFILE%\AppData\Local

و در ویندوز xp:

%USERPROFILE%\Local Settings\Application Data

و چنان که از طریق نصاب خود Python Launcher برنامه را نصب کرده باشید، فایل کانفیگ در محل نصب و در کنار فایل py.exe خواهد بود. برای من فایل کانفیگ به همراه پایتون نصب نشده بود و برای استفاده از امکان تنظیم، Python Launcher به صورت مجزا نصب کردم. اولین تنظیم مربوط به انتخاب نسخه پیش‌فرض لانچر هست: 

[defaults]
; Uncomment out the following line to have Python 3 be the default.
python=3.6

تنظیمات بعدی به صورت انتخابی بوده و می توانید هر دستور دلخواه با هر آرگومان دلخواه را برای لانچر تعریف کنید، بعنوان مثال من هنگام استفاده از virtual environment برای این که از نسخه مورد نظرم استفاده کنم، تنظینات زیر را در فایل کانفیگ اعمال کرده‌ام:

[commands]

venv2= "C:\Python27\Scripts\virtualenv.exe" 
venv3= "C:\Users\UserName\AppData\Local\Programs\Python\Python36\Scripts\virtualenv.exe"

حال وقتی که قصد استفاده از virtual environment با پایتون 3.6 را دارم، دستور زیر را می‌زنم:

py -venv3

با این امکان می‌توان بسیاری از دستورات طولانی و پرکاربرد را کوتاه کرد.

منابع

https://www.python.org/dev/peps/pep-0397/

https://docs.python.org/3/using/windows.html

https://bitbucket.org/vinay.sajip/pylauncher

۰۲ آذر ۹۶ ، ۱۵:۳۲ ۰ نظر موافقین ۰ مخالفین ۰
Hasan

نصب سیستم عامل برای رزبری در ویندوز

نصب سیستم عامل برای رزبری از روی فایل ایمیج کار ساده و سر راستی هست و اصولا به راهنماهای این‌چنینی نیازی نیست و آنچه که لازم هست در سایت سازنده به روشنی بیان شده است، ولی از اونجایی که قبلا در مورد رزبری پست داشتم و احتمالا در آینده هم خواهم داشت برا کامل بودن مطالب وبلاگ در این زمینه این مطلب رو می‌ذارم. الان که دارم می‌نویسم/نصب می‌کنم، رو ویندوز هستم.

از صفحه زیر سیستم عامل مطلوب‌تون رو دانلود کنید، Raspbian سیستم عامل رسمی و پشتیبانی شده از طرف سازنده هست، که من هم از این توزیع استفاده می‌کنم:

https://www.raspberrypi.org/downloads/

بعد از دریافت فایل ایمیج برای نصب مراحل زیر طی می‌شود:

- وارد کرد کارت SD در کارت‌خوان و چک کردن این مورد که چه حرفی به این درایو اختصاص داده شده است. (مثلا  :G)

- در آوردن فایل دانلودی (ایمیج) از حالت فشرده.

- دانلود نرم‌افزار Win32DiskImager از صفحه پروژه در سایت Sourceforge و نصب آن.

- اجرای برنامه Win32DiskImager، این برنامه برای اجرا به دسترسی administrator نیاز دارد. برای این منظور روی فایل کلیک راست کرد و Run as administrator را انتخاب کنید.

- انتخاب فایل ایمیج. دانلود شده.

- انتخاب درایو مربوط به کارت SD، در این مورد دقت شود  چون در صورت انتخاب اشتباه، اطلاعات روی هارد شما می‌تواند آسیب ببیند.

- بر روی Write کلیک کنید و منتظر شوید تا عملیات پایان پذیرد.

- از برنامه خارج شده و کارت SD را در آورید.

- کارت SD را در رزبری قرار دهید و رزبری را روشن کنید.

۲۹ آبان ۹۶ ، ۱۸:۲۵ ۰ نظر موافقین ۰ مخالفین ۰
Hasan

اختصاص دامنه برای Raspberry Pi (رزبری پای) در شبکه محلی

مدتی می‌شه که از رزبری پای استفاده می‌کنم، دیروز سیستم عاملشو عوض کردم و آخرین نسخه Raspbian رو روش نصب کردم. یه چک لیستی تحت عنوان «کارهایی که بعد از راه اندازی رزبری پای باید انجام داد» برا خودم درست کردم و می‌خوام شرح چگونگی انجام هر یک از موارد لیست رو تو شمشاد بنویسم تا راهنمای خوبی برا دفعات بعدی خودم باشه و همچنین شاید به کار کسی بیاد. 

 

با هر بار متصل شدن رزبری به شبکه، آی پی جدیدی به آن اختصاص داده می‌شود، این مسئله هنگام کنترل سیستم از طریق شبکه مشکلاتی را پدید می‌آورد و از طرفی هم استفاده و یادآوری یک اسم آسان‌تر از به کار بردن یک عدد چند رقمی است. برای برطرف کردن این مشکلات در شبکه محلی به رزبری یک دامنه (Domain) اختصاص می‌دهیم. 

 

خوشبختانه ابزار کار بسیار ساده هست و تقریبا بدون هیچ تنظیم خاصی و با نصب بسته Avahi دامنه مورد نظر با پسوند local به سیستم اختصاص داده می‌شود. بسته Avahi، یک شبکه zeroconf را برای ما به ارمغان می‌آورد. (در مورد شبکه‌های zeroconf در ویکی‌پدیای فارسی و انگلیسی بیشتر بخوانید.) 

 

نصب avahi:

sudo apt-get update
sudo apt-get install avahi-daemon

بعد از نصب اگر خطایی وجود نداشته باشد، در شبکه محلی دامنه raspberrypi. local (به صورت پیشفرض) در دسترس است، اما چنان که هنگام ping گرفتن با پیغام  ناشناخنه بودن هاست مواجه شدید مانند: 

 

در لینوکس:

######@linux-ucbi:~> ping raspberrypi.local
ping: unknown host raspberrypi.local

در ویندوز:

C:\Users\######> ping raspberrypi.local
Ping request could not find host raspberry.local. Please check the name and try again.

 

ابتدا باید از باز بودن پورت UDP 5353 در سیستم درخواست کننده مطمئن شوید (فایروال را چک کنید)، مسئله بعدی پشتیبانی سیستم درخواست کننده از شبکه‌های زیروکانف است، کامپیو‌تر‌ها و دیوایس‌هایی که از مک بهره می‌برند به صورت پیشفرض از این نوع شبکه‌ها پشتیبانی می‌کنند اما در ویندوز باید بسته نرم افزاری بنژور (Bonjour که می‌توانید از اینجا دانلود کنید.) نصب شود و در سیستم‌های مبتنی بر لینوکس این امکان با نصب بسته Avahi فراهم می‌شود. متاسفانه من روش و یا نرم افزاری که بتواند امکان پشتیبانی اندروید را از این نوع شبکه‌ها محیا سازد نتوانستم پیدا کنم، فقط کتابخانه‌ای برای توسعه دهنده‌ها و برای آنکه از این نوع شبکه در برنامه‌‌هایشان استفاده کنند وجود دارد و فعلا (تا جایی که من پیدا کردم) تنها ابزاری که در اندروید می‌تواند در مورد این شبکه‌ها کمک کند برنامهٔ ZeroConf Browser است، این برنامه کلیه دامنه‌هایی که در شبکه محلی شما با استفاده از زیروکانف وجود دارند را شناسایی و آی پی آن‌ها را در اختیارتان می‌گزارد و می‌توانید عملیات مورد نظرتان را با آی پی انجام دهید. 

 

 

تغییر نام دامنه: 

 

 ترمینال را باز کنید و بزنید:

sudo nano /etc/hosts

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

w_1_local-domain-to-your-raspberry-pi

بی انکه با سطر های دیگر کاری داشته باشید به سطر آخر بروید، همان سطری که با برچسب  127.0.1.1 مشخص شده است و hostname آن به صورت پیشفرض “raspberrypi”  است ، این عبارت را به هر اسم دلخواهی (مثلا : my-raspberry ) که می خواهید بر روی رزبری تان بگزارید ( دامنه مورد نظر) تغییر دهید ، حالا با “ Ctrl + x “ از ویرایشگر خارج شوید، با درخواست دوباره نوشتن فایل و ذخیره آن  موافقت کنید. در گام بعدی در ترمینال بزنید:

sudo nano /etc/hostname

در این فایل تنها hostname فعلی وجود دارد که  همان  “raspberrypi” است ، این عبارت را به همان اسمی که در مرحله قبل انتخاب کردید (دامنه مورد نظر ) تغییر دهید ، فایل را ذخیره و از ویرایشگر خارج شوید. رزیبری را دوباره راه اندازی  ( reboot ) کنید:

sudo reboot

کار دیگر تمام است و رزبری  را با دامنه مورد علاقه تان و با پسوند “ local “  در شبکه  محلی دارید. ( مثال :   my-raspberry.local )

بدیهی است که آنچه در بالا آمده در تمامی توزیع های لینوکس  نهایتا با کمی تغییر ( بسته به نصاب بسته ها و مکان فایل ها)  قابل پیاده سازی است.

 

منابع (+) (+)

۲۸ مرداد ۹۳ ، ۱۶:۳۳ ۰ نظر موافقین ۰ مخالفین ۰
Hasan

نصب OpenCV در ویندوز برای پایتون

چند روز پیش یکی از دوستانم که اخیراً سایتی رو راه اندازی کرده بهم تلفن کرد گفت: “فتوشاپ داری؟ حدود ۳۰۰ تا عکس دارم که می خوام برا گالری سایت اندازه هاشونو تغییر بدم همچنین اسم سایت رو روشون واترمارک کنم، بلدی چطور میشه کاری کرد که فتوشاپ به صورت اتوماتیک این تغییرات رو همه ی عکس ها اعمال کنه؟” ، بهش گفتم: “بلد نیستم ولی CS3 رو دارم، برات میارم”. با خودم فکر کردم که یه برنامه بنویسم خودش مسیر دایرکتوری عکس ها و قالب واترمارک رو بگیره و تغییرات رو روشون اعمال کنه، از اونجایی که کار کردن تو سی پلاس پلاس کمی دردسر داشت و مجبور بودم  برنامه رو برا ویندوز کامپایل کنم، ترجیح دادم با پایتون بنویسم، اسکریپت رو نوشتم و به خوبی هم جواب داد، بهش تلفن کردم که “عکس ها رو بیار سر قرار، یه برنامه نوشته ام همونجا برات با لپتاپ تبدیل می کنم”. اسکریپت رو فرستادم به لپتاپ و راهی شدم.
خوشحال بودم که می تونستم مشکل دوستمو در کسری از دقیقه حل کنم، عکس ها رو ریختم رو لپتاپ، همینکه اسکریپت رو اجرا کردم با پیغام ناشناخته بودن cv2 مواجه شدم، یادم افتاد OpenCV رو برا پایتون آماده نکرده ام. برگشتنی با خودم فکر می کردم عادت کردن به کار تو لینوکس همچین دردسر هایی هم داره معمولا تو لینوکس نیازی به انجام  این جور کارها نیست وقتی کتابخانه ای رو از مدیریت بسته ها نصب می کنی خودش بسته های پیشنیاز را هم نصب و تنظیم می کنه و کل کار با زدن چند تا تیک حل میشه.

نصب OpenCV در ویندوز برای پایتون

توجه: از آنجایی که بسته های باینری ۶۴ بیتی برای  NumPy و SciPy  به صورت رسمی از طرف توسعه دهنده ارائه نشده اند پیشنهاد می شود  از پایتون ۳۲ بیتی در ویندوزتان استفاده کنید، چنانکه بر استفاده از نسخه ۶۴ بیتی اصرار دارید می توانید بسته های کامپایل شده ۶۴ بیتی کتابخانه های بالا را در اینجا بیابید.

برنامه های پیش نیازی که باید دانلود کرد:

Python : می توانید آخرین نسخه Python 2.7 را  از سایت پایتون دانلود کنید.
NumPy : یک بسته پایه برای انجام محاسبات علمی در پایتون است که امکان کار با آرایه ها و جبر خطی را گسترش می دهد، می توانید از اینجا دانلود کنید.
OpenCV 2.4 : آخرین نسخه را از اینجا دانلود کنید.

بسته های پیشنهادی که نصب آنها ضروری نیست ولی در اکثر منابع و کاربردها از آن ها در کنار OpenCV  استفاده می شود:

matplotlib : کتابخانه ای که امکان رسم نمودار را در پایتون فراهم می کند، دانلود از اینجا.
SciPy : یک کتابخانه برای انجام اعمال پیشرفته ریاضی در پایتون، دانلود از اینجا.

نصب :

۱. فرآیند نصب Python را بدون تغییری در مراحل پیشفرض نصاب نصب کنید، به صورت پیشفرض در مسیر  C:\Python27  نصب خواهد شد.

۲.حالا بسته های SciPy ، NumPy  و  matplotlib را نصب کنید، دوباره اجازه دهید همه چیز به صورت پیش فرض به جلو برود، نصاب مسیر نصب پایتون را پیدا کرده و فایل های خود را در آن مسیر می ریزد.

۳. فایل دانلودی OpenCV را اجرا کنید و برای استخراج فایل ها مسیر درایو C را وارد کنید.

۴. حال فایل cv2.pyd موجود در مسیر C:\opencv\build\python\2.7 را در آدرس C:\Python27\Lib\site-packages کپی کنید.

۵. اکنون “Python IDLE” ( از  Start > All Programmes > Python 2.7 > Python IDLE ) را اجرا کنید و آنچه در زیر آمده است را تایپ کنید:

>>> import cv2
>>> print cv2.__version__

اگر  در خروجی بدون هیچ خطایی عبارت زیر را داشته باشید (البته بسته به نسخه نصبی OpenCV)، کار تمام است:

>>> 2.4.1
 
منابع (+) (+)

۰۱ خرداد ۹۳ ، ۲۱:۳۲ ۴ نظر موافقین ۱ مخالفین ۰
Hasan