Package manager ها – بخش 2

مبانی زبان Python _ بخش 4
مبانی زبان Python _ بخش 4

در سومین مقاله‌ی آموزش برنامه نویسی زبان python از سری مقالات مرتبط با برنامه نویسی در بازار‌ها‌ی مالی به شرح و  بررسی «package manager ها» پرداختیم.، در این بخش موضوع را پی گرفته و بیشتر در مورد آن صحبت خواهیم پرداخت.

پایتون به عنوان ابزاری برای اتوماتیک کردن الگوریتم‌های معاملاتی می‌تواند مورد استفاده قرار گیرد. در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای اعمال هر یک از محاسبات بازار‌های مالی در استراتژی‌های معاملاتی می‌توانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینه‌یابی استراتژی‌های معاملاتی خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت می‌توانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.

– – –

Package manager ها - بخش 2
Package manager ها – بخش 2

 

Package manager ها و آشنایی با Conda Environment

در این بخش از آموزش برنامه نویسی پایتون، مطالب آموزش Package manager ها را با تمرکز بر Conda پی گرفته و آموزش رل پهنگامی که شروع به توسعه‌ی یک پروژه از ابتدا می‌کنید، توصیه می‌شود از آخرین نسخه‌های کتابخانه‌های مورد نیاز خود استفاده کنید.

با این حال، هنگام کار با پروژه شخص دیگری، مانند هنگام اجرای نمونه‌ای از Kaggle یا Github، ممکن است به دلیل مشکلات سازگاری نیاز به نصب نسخه‌های خاصی از بسته‌ها یا حتی نسخه دیگری از Python داشته باشید.

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

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

Conda شامل مدیر محیط(Environment manager) خود است و مزایایی را نسبت به Virtualenv ارائه می‌دهد، به خصوص در مورد برنامه‌های عددی، مانند توانایی مدیریت وابستگی‌های غیر پایتون و توانایی مدیریت نسخه های مختلف پایتون، که با Virtualenv امکان پذیر نیست.

علاوه بر این، محیط‌های Conda کاملاً با بسته‌های پیش‌فرض پایتون سازگار هستند که ممکن است با استفاده از pip نصب شوند.

نصب Miniconda Conda، یک محیط  root را با نسخه‌ای از Python و برخی از بسته‌های اولیه نصب شده ارائه می‌دهد. علاوه بر این محیط root، امکان راه اندازی محیط های اضافی به جهت بهره‌گیری از نسخه‌های مختلف پایتون و پکیج‌ها نیز وجود خواهد داشت.

محیط ایزوله‌ی(Conda environment) کوندا

مشابه محیط‌های مجازی پایتون (venv)
مجموعه ای از بسته‌های جدا شده در یک فهرست
قابلیت اشتراک‌گذاری از طریق Environment files

 

با استفاده از محیط Anaconda Powershell Prompt، می‌توان با اجرای conda env list، محیط‌های موجود Conda را بررسی کرد.

(base) C:\Users\IEUser>conda env list
//

 

Package manager ها و ساخت یک Conda environment جدید

این محیط پایه، root environment است که توسط Miniconda installer ایجاد شده است. با اجرا فرمان زیر می‌توان محیط دیگری به نام otherenv ایجاد کرد

(base) C:\Users\IEUser>conda create --name otherenv
//

 

فعال کردن یک Conda environment 

همانطور که پس از اتمام فرآیند ایجاد محیط، در نتیجه‌ی پرینت آمده در ترمینال مشخص شد، می‌توان محیط otherenv را با اجرای conda activate otherenv فعال کرد. با علامت بین پرانتز در ابتدای دستور متوجه خواهید شد که محیط تغییر کرده است:

(base) C:\Users\IEUser>conda activate otherenv

(otherenv) C:\Users\IEUser>

 

python repl

با اجرای فرمان python می‌توانید مفسر پایتون را در این محیط باز کنید:

(otherenv) C:\Users\IEUser>python
# OutPut: Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

البته در بخش‌های بعدی به طور مفصل در مورد محیط‌های اجرای پایتون صحبت خواهیم کرد.

این محیط شامل Python 3.7.0 است، همان نسخه موجود در root base environment. برای خروج از مفسر پایتون، کافیست دستور ()quit را اجرا کنید.

>>> quit()

(otherenv) C:\Users\IEUser>

 

برای غیرفعال کردن otherenv environment و بازگشت به root base environment، باید فرمان deactivateرا اجرا کنید:

(otherenv) C:\Users\IEUser>deactivate

(base) C:\Users\IEUser>

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

<python=<version

هنگام اجرای… conda create مشخص کنید. به عنوان مثال، برای ایجاد محیطی به نام py2 با python 2.7، باید conda create –name py2 python=2.7 را اجرا کنید:

(base) C:\Users\IEUser>conda create --name py2 python=2.7
# OutPut: Solving environment: done
# ...

همانطور که در خروجی conda create نشان داده شده است، این بار چند بسته جدید نصب شده است، زیرا محیط جدید از Python 2 استفاده می‌کند.

(base) C:\Users\IEUser>conda activate py2

(py2) C:\Users\IEUser>python
Python 2.7.15 |Anaconda, Inc.| (default, May  1 2018, 18:37:09) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

حال، اگر conda env list را اجرا کنید، باید دو محیط ایجاد شده را به غیر از root base environment مشاهده کنید.:

(py2) C:\Users\IEUser>conda env list
# conda environments:
#
base                     C:\Users\IEUser\Miniconda3
otherenv                 C:\Users\IEUser\Miniconda3\envs\otherenv
py2               *  C:\Users\IEUser\Miniconda3\envs\py2


(py2) C:\Users\IEUser>

در لیست، ستاره محیط فعال شده را مشخص می‌کند.

 

حذف یک Conda environment 

حذف یک محیط با اجرای

conda remove –name <environment name> –all

امکان پذیر است.

  • از آنجایی که امکان حذف یک محیط فعال وجود ندارد، ابتدا باید محیط py2 را غیرفعال کنید تا آن را حذف کنید.
(py2) C:\Users\IEUser>deactivate

(base) C:\Users\IEUser>conda remove --name py2 --all

# OutPut: Remove all packages in environment C:\Users\IEUser\Miniconda3\envs\py2:

 

شناخت بهتر هر زبان برنامه‌نویسی به ما کمک می‌کند که در صورت نیاز به برون‌سپاری یک کد راحت‌تر سفارش کد خود را داشته باشیم. سفارش کد mql و سفارش کد python در حوزه‌ی بازار‌های مالی از طریق‌ سایت جهان قابل انجام است.

در ادامه‌ی آموزش برنامه نویسی پایتون، اکنون که با اصول مدیریت محیط‌ها در Conda تا حدی آشنا شده‌ایم بیایید در مورد نحوه مدیریت پکیج‌ها در محیط ها صحبت کنیم.

 

درک موارد پایه‌ی مدیریت بسته با Conda

در هر محیط، بسته های نرم افزاری را می‌توان با استفاده از مدیر بسته Conda نصب کرد.  root base environment  ایجاد شده توسط نصب کننده Miniconda شامل بسته‌هایی به طور پیش فرض است که بخشی از کتابخانه استاندارد پایتون نیستند.

نصب پیش فرض شامل حداقل بسته‌های لازم برای استفاده از Conda است. برای بررسی لیست بسته‌های نصب شده در یک محیط، فقط باید از فعال بودن آن مطمئن شوید و conda list را اجرا کنید. در محیط root بسته‌های زیر به صورت پیش فرض نصب می‌شوند :

(base) C:\Users\IEUser>conda list
//

برای مدیریت بسته‌ها نیز باید از Conda استفاده کنید. در مرحله بعد، بیایید نحوه جستجو، نصب، به روز رسانی و حذف بسته‌ها را با استفاده از Conda ببینیم.

جستجو و نصب بسته ها

بسته‌ها از repository هایی به نام channel توسط Conda نصب می‌شوند و برخی از کانال‌های پیش‌فرض توسط نصب کننده پیکربندی(configuration) می‌شوند.

برای جستجوی یک بسته خاص، می‌توانید جستجوی <conda search <package name را اجرا کنید. به عنوان مثال، نحوه جستجوی بسته keras (یک کتابخانه machine learning) به این صورت است:

(base) C:\Users\IEUser>conda search keras
Loading channels: done
# Name                  Version           Build  Channel
keras                     2.0.8  py35h15001cb_0  pkgs/main
keras                     2.0.8  py36h65e7a35_0  pkgs/main
keras                     2.1.2          py35_0  pkgs/main
keras                     2.1.2          py36_0  pkgs/main
keras                     2.1.3          py35_0  pkgs/main
keras                     2.1.3          py36_0  pkgs/main

... (more)

 

با توجه به خروجی قبلی، نسخه‌های مختلف بسته و ساخت‌های مختلف برای هر نسخه وجود دارد، مانند پایتون 3.5 و 3.6.

جستجوی قبلی فقط موارد منطبق دقیق را برای بسته‌هایی با نام keras نشان می‌دهد. برای انجام یک جستجوی گسترده‌تر، از جمله تمام بسته‌های حاوی keras در نام خود، باید از علامت * استفاده کنید. به عنوان مثال، وقتی جستجوی

*conda search *keras

را اجرا می‌کنید، موارد زیر را دریافت می‌کنید:

(base) C:\Users\IEUser>conda search *keras*
Loading channels: done
# Name                  Version           Build  Channel
keras                     2.0.8  py35h15001cb_0  pkgs/main
keras                     2.0.8  py36h65e7a35_0  pkgs/main
keras                     2.1.2          py35_0  pkgs/main
keras                     2.1.2          py36_0  pkgs/main
keras                     2.1.3          py35_0  pkgs/main
keras                     2.1.3          py36_0  pkgs/main

... (more)

keras-applications           1.0.2          py35_0  pkgs/main
keras-applications           1.0.2          py36_0  pkgs/main
keras-applications           1.0.4          py35_0  pkgs/main

... (more)

keras-base                2.2.0          py35_0  pkgs/main
keras-base                2.2.0          py36_0  pkgs/main

... (more)

همانطور که خروجی قبلی نشان می‌دهد، بسته‌های دیگری مرتبط با keras در کانال‌های پیش فرض وجود دارد.

برای نصب یک بسته، باید <conda install <package name را اجرا کنید. به طور پیش فرض، جدیدترین نسخه بسته در محیط فعال نصب می‌شود. بنابراین، بیایید بسته keras را در محیط otherenv که قبلا ایجاد کرده‌اید نصب کنیم:

(base) C:\Users\IEUser>conda activate otherenv

(otherenv) C:\Users\IEUser>conda install keras
Solving environment: done
...

Conda هنگام نصب بسته، وابستگی‌های لازم را برای یک بسته مدیریت می‌کند. از آنجایی که بسته keras وابستگی‌های زیادی دارد، وقتی آن را نصب می‌کنید، Conda موفق می‌شود این لیست بزرگ از بسته ها را نصب کند.

شایان ذکر است که از آنجایی که جدیدترین ساخت بسته keras از Python 3.6 استفاده می کند و محیط otherenv با استفاده از Python 3.7 ایجاد شده است، بسته پایتون نسخه 3.6.6 به عنوان یک وابستگی گنجانده شده است. پس از تایید نصب، می‌توانید بررسی کنید که نسخه Python برای محیط otherenv به نسخه 3.6.6 downgrad شده است.

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

«dry-run–» استفاده کنید. به عنوان مثال، برای بررسی بسته هایی که با نصب بسته keras تغییر می‌کنند، باید موارد زیر را اجرا کنید:

(otherenv) C:\Users\IEUser>conda install keras --dry-run
//

با این حال، در صورت لزوم، امکان تغییر پایتون پیش فرض یک محیط Conda با نصب نسخه خاصی از بسته پایتون وجود دارد. برای نشان دادن آن، اجازه دهید یک محیط جدید به نام envpython ایجاد کنیم:

(otherenv) C:\Users\IEUser>conda create --name envpython
Solving environment: done

همانطور که قبلا دیدید، از آنجایی که محیط پایه root از Python 3.7 استفاده می‌کند، envpython شامل همین نسخه از Python ایجاد می شود:

(base) C:\Users\IEUser>conda activate envpython

(envpython) C:\Users\IEUser>python
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

(envpython) C:\Users\IEUser>

برای نصب یک نسخه خاص از یک بسته، می توانید <conda install <package name>=<version را اجرا کنید. به عنوان مثال، نحوه نصب پایتون 3.6 در محیط envpython به این صورت است:

(envpython) C:\Users\IEUser>conda install python=3.6
Solving environment: done

در صورتی که نیاز به نصب بیش از یک پکیج در یک محیط داشته باشید، امکان اجرای … conda install تنها یک بار با عبور نام بسته‌ها وجود دارد. برای نشان دادن آن، اجازه دهید numpy، scipy، و matplotlib، بسته‌های پایه برای محاسبات عددی در محیط پایه ریشه نصب کنیم:

(envpython) C:\Users\IEUser>deactivate

(base) C:\Users\IEUser>conda install numpy scipy matplotlib
Solving environment: done

اکنون که نحوه جستجو و نصب بسته ها را پوشش داده‌اید، بیایید نحوه به روز رسانی و حذف آن‌ها را با استفاده از Conda ببینیم.

 

به روز رسانی و حذف پکیج ها

گاهی اوقات، زمانی که بسته‌های جدید منتشر می‌شوند، باید آن‌ها را به روز کنید. برای انجام این کار، می‌توانید

<conda update <package name

را اجرا کنید. اگر می‌خواهید همه بسته ها را در یک محیط به روز کنید، باید محیط را فعال کنید و

conda update –all

را اجرا کنید.

برای حذف یک بسته، می‌توانید<conda remove <package name را اجرا کنید. به عنوان مثال، نحوه حذف

root base environment به این صورت است:

(base) C:\Users\IEUser>conda remove numpy
Solving environment: done

شایان ذکر است که وقتی یک بسته را حذف می‌کنید، تمام بسته‌هایی که به آن وابسته هستند نیز حذف می‌شوند.

 

دستور‌های Conda

در پایان این بخش از آموزش Package manager ها از آموزش برنامه نویسی پایتون به مرور اجمالی دستورات Conda می‌پردازیم.

Conda commands-01
Conda commands-01
Conda commands-02
Conda commands-02
Conda commands-03
Conda commands-03
Conda commands-04
Conda commands-04
Conda commands-05
Conda commands-05
Conda commands-06
Conda commands-06
Conda commands-07
Conda commands-07
Conda commands-08
Conda commands-08
Conda commands-09
Conda commands-09
Conda commands-10
Conda commands-10
Conda commands-11
Conda commands-11
Conda commands-12
Conda commands-12

 

 

در مقالات بعدی آموزش مبانی زبان Python، مطالب را پی گرفته و بیش‌تر در مورد package manager ها صحبت خواهیم کرد.

همچنین می‌توانید از سسله مقالات آموزش مبانی زبان MQL5 سایت جهان بورس استفاده نمایید.

5 1 رای
امتیازدهی به مقاله
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
سبد خرید
هیچ محصولی در سبد خرید وجود ندارد!
خرید را ادامه دهید