علی شکیبا

دفتر یادداشت دیجیتال برای هر چیز مفید!

۱۱ مطلب با کلمه‌ی کلیدی «python» ثبت شده است

با سلام

کافی است دستورات زیر را اجرا کنیم تا بسته‌های مورد نظر را نصب کنیم:

!pip install python-igraph
!sudo apt-get install libcairo2-dev
!pip install pycairo
!pip install cairocffi

پس از آن، می توان به سادگی گراف ها را ترسیم نمود:

import matplotlib.pyplot as plt
%matplotlib inline
import igraph

igraph.plot(H)

۰ نظر موافقین ۰ مخالفین ۰ ۳۱ مرداد ۹۹ ، ۰۱:۰۴
علی شکیبا

دستورات زیر را به ترتیب اجرا می کنیم و کار تمام است

sudo apt install cmake unzip pkg-config libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk-3-dev libatlas-base-dev gfortran cmake gcc g++ git libjpeg-dev libpng-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev pkg-config libgtk2.0-dev libopenblas-dev libatlas-base-dev liblapack-dev libeigen3-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev sphinx-common libtbb-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libopenexr-dev libgstreamer-plugins-base1.0-dev libavcodec-dev libavutil-dev libavfilter-dev libavformat-dev libavresample-dev ffmpeg
mkdir opencv4
cd opencv4
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.1.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.1.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.1.0 opencv
mv opencv_contrib-4.1.0 opencv_contrib
cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$(python -c "import sys; print(sys.prefix)")-D ENABLE_FAST_MATH=ON -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv4/opencv_contrib/modules -D CMAKE_INSTALL_PREFIX=$(python -c "import sys; print(sys.prefix)") -D PYTHON_EXECUTABLE=$(which python) -D PYTHON_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -D PYTHON_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") -D BUILD_EXAMPLES=ON ..
make -j 20
sudo make install
sudo ldconfig
python
import cv2
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ دی ۹۸ ، ۲۳:۵۷
علی شکیبا

در زمان ذخیره نتایج، معمولا اطلاعات را pickle می کنم. اما متاسفانه در حدود یک سال پیش فراموش کرده بودم از مد 'wb' استفاده کنم و فقط از 'w' استفاده کرده بودم! برای رفع مشکل، دستورات زیر به کمکم آمدند

with open('file.pickle', 'rb') as f:
# tests = pickle.load(input_file)
u = pickle._Unpickler(f)
u.encoding = 'latin1'
p = u.load()
۰ نظر موافقین ۰ مخالفین ۰ ۰۷ آذر ۹۸ ، ۱۹:۳۹
علی شکیبا
from bidi.algorithm import get_display
import arabic_reshaper
def make_farsi_text(x):
reshaped_text = arabic_reshaper.reshape(x)
farsi_text = get_display(reshaped_text)
return farsi_text
def make_farsi_text(x):
reshaped_text = arabic_reshaper.reshape(x)
farsi_text = get_display(reshaped_text)
return farsi_text
font_title = {'family': 'B Farnaz',
'color': 'red',
'weight': 'normal',
'size': 30,
}
font_labels = {'family': 'B Nazanin',
'color': 'black',
'weight': 'normal',
'size': 20,
}

برداشته شده از: http://imuhammad.ir/2017/09/23/farsi-plots-python/
۱ نظر موافقین ۰ مخالفین ۰ ۲۷ تیر ۹۸ ، ۱۶:۴۰
علی شکیبا

با استفاده از conda

conda install -c conda-forge geopy --yes -p /home/ali.shakiba/.conda/packages/
conda install -c conda-forge folium=0.5.0 --yes -p /home/ali.shakiba/.conda/packages/

با استفاده از pip

pip install --user package
۰ نظر موافقین ۱ مخالفین ۰ ۰۸ تیر ۹۸ ، ۱۳:۵۸
علی شکیبا

مطالعه کتاب Learn Keras for Deep Neural Networks: A Fast-Track Approach to Modern Deep Learning with Python نوشته Jojo John Moolayil که توسط انتشارات APRESS در سال 2019 چاپ شده است را به دوستانی که مفاهیم شبکه های عصبی را می دانند؛ اما به دنبال پیاده سازی سریع آن ها هستند؛ توصیه می کنم. البته باید متذکر شد که نگارنده کتاب بخش های زیادی را حاشیه رفته که می توان آن ها را سریعتر مطالعه نمود. این نوشتار در حدود 180 صفحه است و مطالعه آن در یک بعد از ظهر گرم بهاری لذت بخش است! اما مراقب باشید بیش از این برای آن زمان نگذارید.
نکته قابل ذکر دیگر اینکه این کتاب به کاربردهای اساسی DeepLearning مانند CNN و RNN و GAN نمی پردازد و بیشتر می خواهد بگوید چگونه یک شبکه عصبی کلاسیک را پیاده سازی کنید.

۰ نظر موافقین ۱ مخالفین ۰ ۱۸ خرداد ۹۸ ، ۲۳:۴۵
علی شکیبا
import telnetlib
for i in range(1,256):
host = 'xyz.xyz.xyz.' + str(i)
user = 'user'.encode('ascii')
password = 'pass'.encode('ascii')
try:
tn = telnetlib.Telnet(host, port=23)
tn.read_until(b'Username: ')
tn.write(user + b'\n')
tn.read_until(b'Password: ')
tn.write(password + b'\n')
tn.write(b'conf t' + b'\n')
tn.write(b'access-list zz permit xyz.xyz.xyz.xyz' + b'\n')
tn.write(b'exit' + b'\n')
tn.write(b'write memory' +b'\n')
tn.write(b'exit' + b'\n')
tn.read_all()
print('Done for ' + host)
except:
print('Not exists ' + host)
۰ نظر موافقین ۱ مخالفین ۰ ۰۱ ارديبهشت ۹۸ ، ۰۰:۲۶
علی شکیبا

اصول قالب‌بندی برنامه‌های پایتون -- PEP 8 -- Style Guide for Python Code

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

۰ نظر موافقین ۱ مخالفین ۰ ۰۹ شهریور ۹۷ ، ۱۷:۳۹
علی شکیبا

یکی از بهترین و مجهزترین کتابخانه‌های پردازش تصویر که متن باز هم باشد، Open CV است. این کتابخانه که به زبان ++C/C نوشته شده است، دارای یک رابط برای زبان Python نیز هست که کار با آن را بسیار ساده‌تر می‌کند و البته سرعت پردازشی بالایی را نیز به نسبت بسیاری از کتابخانه‌هایی که به صورت خالص در Python نوشته شده اند، فراهم می‌کند!

اما نصب آن یک دردسر بسیار بزرگ برای من بود! اما بالاخره موفق شدم تا آن را به صورتی کامل نصب کنم (مثال‌ها به درستی اجرا می‌شدند! :) ). مراحل نصب در ذیل می‌آیند.

اما قبل از نصب، من از موتور تک‌لایو 2012 که به شیوه این پست آن را نصب کرده ام و از توزیع Anaconda Python استفاده می‌کنم که به صورت دستی و نه با استفاده از مخازن Ubuntu نصب شده اند. شاید یکی از مهمترین دلایل سخت بودن این فرایند برای من، همین دو موضوع بود! بگذریم ...

ابتدا لازم است تا به سایت رسمی OpenCV به آدرس http://opencv.org/downloads.html رفته و از آنجا نسخه مورد نظر خود را دریافت کنیم. در زمانی که این متن را می‌نویسم، نسخه 3 در مرحله Release Candidate 1 قرار داشت. من از نسخه 2.4.11 استفاده کردم!

سپس نوبت به نصب پیش‌نیازها می‌رسد. برای نصب موفق این بسته، این بسته‌ها را نصب کردم:

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake libtbb-dev libeigen3-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev default-jdk ant libvtk5-qt4-dev qt5-default libqt5x11* libx11-xcb1* pkg-config libxcb1-dev libxcb1 xcb

البته به احتمال خیلی زیاد، تعدادی از این بسته‌ها لازم نیستند، اما این تمام بسته‌هایی است که نصب شدند (در مراحل مختلف که خطایابی نصب انجام می‌شد) تا مثال‌ها به درستی نصب شدند.

پس از آن، فایل دانلود شده در مرحله اول را از حالت فشرده باز کرده 

unzip opencv-2.4.11.zip

و سپس پوشه‌ای برای نگهداری اطلاعات build به نام build می‌سازیم (نام پوشه اصلا مهم نیست!)

cd opencv-2.4.11
mkdir build

پس از آن به پوشه مربوطه رفته

cd build

و دستور زیر را اجرا می‌کنیم. دقت کنید که مسیر‌های مربوط به پایتون را در این دستور مطابق شرایط نصب خود تغییر دهید

cmake -D CMAKE_BUILD_TYPE=RELEASE -D PYTHON_LIBRARY=/opt/anaconda/lib/python2.7/ -D PYTHON_INCLUDE_DIR=/opt/anaconda/include/python2.7/ -D PYTHON_PACKAGES_PATH=/opt/anaconda/lib/python2.7/site-packages/ -D BUILD_EXAMPLES=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_VTK=ON ..

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

make -j 4
sudo make install

پس از آن، در فایل (ممکن است فایل وجود نداشت باشد، اگر نبود، یکی بسازید)

/etc/ld.so.conf.d/opencv.conf

آدرس

/usr/local/lib

را درج کرده و فایل را ذخیره می‌کنیم. سپس، برای پیکربندی کتابخانه‌ها دستور

sudo ldconfig

را اجرا کرده و در فایل bashrc. موارد زیر را قرار می‌دهیم

export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

با بازکردن یک کنسول جدید، یا خارج و وارد شدن مجدد به محیط کاربری، می‌توانیم از صحت نصب با مراجعه به پوشه samples در پوشه opencv-2.4.11 و اجرای موفق مثال‌ها، مطمئن شویم که نصب به درستی صورت پذیرفته است!

۰ نظر موافقین ۰ مخالفین ۰ ۰۷ خرداد ۹۴ ، ۱۷:۳۹
علی شکیبا

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

اما مشکل جایی آغاز می‌شود که خروجی بسیار طولانی است و این گونه فایل‌ها در مرورگر وب بارگذاری می‌شوند. برای من بسیار پیش آمده است که بارگذاری یک فایل منجر به هنگ و در نهایت کرش کردن مرورگر شود. به همین دلیل پاک کردن خروجی‌ها قبل از بازکردن فایل، راهکار مناسبی به نظر می‌رسد. بدین منظور کافی است در همان مسیر یک Notebook جدید را باز کرده و قطعه کد ذیل را در آن اجرا کنیم! فایلی هم نام با فایل مورد نظر که عبارت _removed به انتهای آن اضافه شده است، در همان مسیر تولید شده که شامل محتویات فایل مزبور منهای خروجی ها است. این راهکار از اینجا برداشته شده است.

import sys
import io
import os
from IPython.nbformat.current import read, write
def remove_outputs(nb):
"""remove the outputs from a notebook"""
for ws in nb.worksheets:
for cell in ws.cells:
if cell.cell_type == 'code':
cell.outputs = []

fname = "اسم فایل مورد نظر.ipynb"
with io.open(fname, 'r') as f:
nb = read(f, 'json')
remove_outputs(nb)
base, ext = os.path.splitext(fname)
new_ipynb = "%s_removed%s" % (base, ext)
with io.open(new_ipynb, 'w', encoding='utf8') as f:
write(nb, f, 'json')
print "wrote %s" % new_ipynb
۰ نظر موافقین ۰ مخالفین ۰ ۲۴ فروردين ۹۴ ، ۲۲:۳۲
علی شکیبا