Մի արեք այս սխալը, երբ սկսում եք ձեր Python նախագիծը


Հիմնական Takeaways

  • Վիրտուալ միջավայրերը ստեղծում են մեկուսացված տարածքներ Python նախագծերի համար՝ կանխելու փաթեթների կոնֆլիկտները և սխալները:
  • Նրանք ստեղծում են առանձին թղթապանակ Python-ի իրենց սեփական պատճենով և կառավարում են ձեր համակարգի PATH-ը՝ միջավայրերի միջև անցնելու համար:
  • Նրանք օգնում են մաքուր պահել ձեր գլոբալ Python միջավայրը՝ կանխելով աղտոտումը ավելորդ փաթեթներով, որոնք կարող են անհրաժեշտ չլինել յուրաքանչյուր նախագծի համար:

Սկսե՞լ Python նախագիծը: Որպես ծրագրավորող, դուք հաճախ կհայտնաբերեք, որ աշխատում եք բազմաթիվ նախագծերի վրա: Եթե դա այդպես է ձեզ համար, ապա վիրտուալ միջավայրերը ձեր ընկերն են: Նրանք կօգնեն ձեզ հաղթահարել փաթեթների կոնֆլիկտները և կախվածության դժոխքը Python-ի բազմաթիվ նախագծերի վրա աշխատելիս:

Ի՞նչ է վիրտուալ միջավայրը:

Վիրտուալ միջավայր Python ծրագրավորման համատեքստում նշանակում է ինքնամփոփ տեղակայում, որը թույլ է տալիս պահպանել առանձին և մեկուսացված միջավայրեր ձեր Python նախագծերի համար: Երբ ակտիվացված է, այն կարգավորում է ձեր տերմինալի միջավայրը՝ Python-ի այդ մեկուսացված կարգավորումն օգտագործելու համար: Վիրտուալ միջավայրերը թույլ են տալիս օգտագործել Python-ի և այլ փաթեթների մի քանի տարբերակներ՝ առանց մեկը մյուսի հետ հակասության: Այս գործընթացը հետևողական է բոլոր օպերացիոն համակարգերում, ինչպիսիք են Windows-ը, Linux-ը և macOS-ը:

Վիրտուալ միջավայրից օգտվելու համար դուք նախ կստեղծեք այն, կակտիվացնեք այն, կտեղադրեք ձեր նախագծի համար անհրաժեշտ փաթեթները դրա ներսում և, երբ ավարտեք նախագծի վրա աշխատելը, վերջապես կանջատեք միջավայրը: (Ես մի փոքր կներկայացնեմ բոլոր քայլերը):

Երբ դուք առաջին անգամ ստեղծում եք վիրտուալ միջավայր, այն ստեղծում է նոր թղթապանակ ձեր նախագծի գրացուցակում: Վիրտուալ միջավայրը ապրում է այս թղթապանակում: Python թարգմանչի պատճենը և որոշ կարևոր ֆայլեր տեղադրված են այս թղթապանակում: Այս պատճենը գործում է որպես Python-ի հիմնական տեղադրում ձեր նախագծի համար: Այն նաև պահում է Scripts (Windows) կամ bin (Linux) թղթապանակ, որը պարունակում է ակտիվացման և ապաակտիվացման սկրիպտներ, որպեսզի կարողանաք անցնել ձեր գլոբալ Python-ի և մեկուսացված տարբերակների միջև:

Շրջակա միջավայրն ակտիվացնելուց հետո ձեր կեղևի միջավայրը փոխվում է, ինչի արդյունքում հրամանի տողը օգտագործում է Python թարգմանիչը և գրադարանները վիրտուալ միջավայրում: Կուլիսների հետևում թարմացվում է միջավայրի PATH փոփոխականը: Վիրտուալ միջավայրի «bin» (Windows-ի «Սկրիպտներ») թղթապանակը ավելացվում է PATH-ի սկզբում, որը հուշում է ձեր տերմինալին նախ այնտեղ նայել: Նաև ձեր հուշումը փոխվում է՝ արտացոլելու թարմացումը:

Վիրտուալ միջավայրում Python փաթեթ տեղադրելիս այն սովորաբար տեղադրվում է «lib/pythonX.X/site-packages» (Windows-ում «Lib\site-packages») թղթապանակում՝ գլոբալ Python համակարգի փոխարեն: Յուրաքանչյուր միջավայր ունի իր «site-packages» գրացուցակը, որտեղ պահվում են բոլոր տեղադրված գրադարանները և կախվածությունները: Սա յուրաքանչյուր նախագիծ պահում է մեկուսացված և զերծ այլ նախագծերի կամ գլոբալ փաթեթների հետ հակասություններից:

Ինչու՞ օգտագործել վիրտուալ միջավայր Python-ի զարգացման համար:

Ենթադրենք, դուք միաժամանակ աշխատում եք Python-ի բազմաթիվ նախագծերի վրա: Նախագծերից մեկը մի քիչ հին է. Երկու նախագծերն էլ պահանջում են Django մոդուլ: Այնուամենայնիվ, հին նախագիծը պահանջում է Django տարբերակ 3, իսկ ավելի նորը պահանջում է Django տարբերակ 4: Սկզբում մտածելով, դուք կարող եք դիտարկել երկու տարբերակները ձեր համակարգում տեղադրելը:

Այնուամենայնիվ, դա հնարավոր չէ, և դուք սխալ կստանաք, եթե փորձեք դա անել: Այսպիսով, դուք չեք կարող միաժամանակ տեղադրել նույն փաթեթի երկու տարբեր տարբերակներ: Նույնիսկ եթե հաջողվի տեղադրել այն, վերջին տեղադրված տարբերակը կշրջանցի նախկինում տեղադրվածը: Դրան ավելացնելու համար, երբ փաթեթ եք ներմուծում ձեր Python կոդի մեջ, չեք կարող որոշել, թե որ տարբերակն օգտագործել: Այսպիսով, սա ևս մեկ պատճառ է, որ դուք կարող եք միաժամանակ ունենալ փաթեթի միայն մեկ տարբերակ:

Այժմ, եթե ցանկանում եք աշխատել երկու նախագծերի վրա, դուք պետք է նախ տեղադրեք Django տարբերակը, աշխատեք այդ նախագծի վրա, ապա ջնջեք այն, տեղադրեք մյուս տարբերակը, անցնեք մյուս նախագծին և այլն: Դա ամենևին էլ գործնական չէ: Սա ընդամենը մի փոքր օրինակ է։ Դուք, ամենայն հավանականությամբ, կբախվեք նման կախվածության շատ ավելի բարդ հակամարտությունների:

Վիրտուալ միջավայրերը լուծում են այս խնդիրը: Դուք կարող եք ստեղծել նոր միջավայր ձեր յուրաքանչյուր նախագծի համար, տեղադրել անհրաժեշտ փաթեթներն ու կախվածությունները և չանհանգստանալ որևէ կոնֆլիկտից և սխալներից: Ահա մի արագ օրինակ, որտեղ ես տեղադրել եմ NumPy-ի երկու տարբեր տարբերակներ երկու տարբեր նախագծերի համար:

Այս օրինակի համար ես ստեղծել եմ երկու վիրտուալ միջավայր երկու առանձին նախագծերի համար: Հետո ես հաջողությամբ տեղադրեցի NumPy-ի երկու առանձին տարբերակներ: Այստեղ projectA-ն օգտագործում է 2.1.1 տարբերակը, մինչդեռ projectB-ն օգտագործում է 2.0.0 տարբերակը:

Վիրտուալ միջավայրերի օգտագործման մեկ այլ առավելությունն այն է, երբ ցանկանում եք համագործակցել ուրիշների հետ կամ կիսվել ձեր նախագծերով: Օգտագործելով «requirements.txt» ֆայլը, դուք կարող եք սահմանել բոլոր կախվածությունները, որոնք այնուհետև կարող են վերստեղծվել մեկ այլ մեքենայի նոր միջավայրում:

Ինչպես ստեղծել վիրտուալ միջավայր

Վիրտուալ միջավայրը ձեր ստեղծած գրացուցակն է, որտեղ դուք պահում եք նախագծի բոլոր ֆայլերը և հարակից փաթեթները: Ցուցադրման համար ես նախ պատրաստվում եմ ստեղծել գրացուցակ՝ միջավայրը կարգավորելու համար:

mkdir programming
cd programming

Այս նորաստեղծ գրացուցակի ներսում ես պատրաստվում եմ ստեղծել վիրտուալ միջավայր:

Linux

Linux-ի մեծ մասում Python-ը սովորաբար նախապես տեղադրված է: Եթե ոչ, կարող եք Python-ը տեղադրել Linux-ում՝ օգտագործելով ձեր փաթեթի կառավարիչը: Այնուհետև տեղադրեք վիրտուալ միջավայրը այս հրամանով.

sudo apt install python3-venv

Դրանից հետո դուք կարող եք ստեղծել վիրտուալ միջավայրեր: Դուք պետք է անվանեք շրջակա միջավայրը: Այնուհետև գործարկեք ստորև նշված հրամանը.

python3 -m venv my_virt_env

Իմ դեպքում ես այն անվանեցի «my_virt_env»: Դուք կարող եք ընտրել ցանկացած հարմար անուն:

Windows

Առաջին բանը, որ դուք պետք է անեք, Python-ը Windows-ում տեղադրելն է: Տեղադրելու ընթացքում համոզվեք, որ ավելացրեք Python.exe-ն ձեր համակարգի PATH-ում: Նավարկեք դեպի այն թղթապանակը, որտեղ ցանկանում եք ստեղծել վիրտուալ միջավայր: Բացեք ձեր նախընտրած հրամանի տողի գործիքը և այնուհետև գործարկեք.

python -m venv myenv

Վիրտուալ միջավայրի ակտիվացում

Վիրտուալ միջավայր ստեղծելը բավարար չէ: Դուք պետք է ակտիվացնեք այն՝ օգտագործելով թղթապանակի ներսում գտնվող ակտիվացման ֆայլը՝ այն օգտագործելու համար: Եթե հաջողությամբ ակտիվացնեք վիրտուալ միջավայրը, ապա հուշման սկզբում կնկատեք թղթապանակի անունը փակագծերի ներսում՝ հրամանի տողում:

Linux

Linux-ում վիրտուալ միջավայրն ակտիվացնելու համար գործարկեք՝

source my_virt_env/bin/activate

Հիշեք, որ օգտագործեք նույն գրացուցակի անունը, որն օգտագործել եք վիրտուալ միջավայրի համար:

Այժմ, երբ դուք ակտիվացրել եք վիրտուալ միջավայրը, կարող եք դրա ներսում տեղադրել Python փաթեթներ, այսպես.

python -m pip install package_name

Որոշ փաթեթներ տեղադրելուց հետո կարող եք ստուգել դրանց տարբերակները այս հրամանով.

pip list

Եթե ցանկանում եք դուրս գալ վիրտուալ միջավայրից, ապա գործարկեք.

deactivate

Փակագծերի ներսում գտնվող միջավայրի անունը պետք է անհետանա հրամանի տողից:

Windows

Windows-ում միջավայրն ակտիվացնելու համար գործարկեք՝

myenv\Scripts\activate # CMD
.\myenv\Scripts\Activate.ps1 # PowerShell



Այս միջավայրում փաթեթ տեղադրելու համար օգտագործեք այս հրամանը.

python -m pip install package_name

Դուք կարող եք թվարկել տեղադրված փաթեթները՝ գործարկելով.

pip list

Եթե ցանկանում եք դուրս գալ վիրտուալ միջավայրից, գործարկեք՝

deactivate

Երբ դուք ապաակտիվացնեք վիրտուալ միջավայրը, դուք կվերադառնաք ձեր գլոբալ Python-ի կարգավորումներին:

Python փաթեթի գլխացավերը վերացել են

Վիրտուալ միջավայրի հավաքածուով դուք պատրաստ եք սկսել կոդավորումը Python-ում՝ առանց անհանգստանալու փաթեթի տարբեր տարբերակների, կոնֆլիկտների և սխալների մասին: Այս ուղեցույցի համար ես օգտագործել եմ venv գործիքը: Կան այլ գործիքներ, ինչպիսիք են Virtualenv-ը և Conda-ն: Դուք կարող եք ազատ զգալ ուսումնասիրել դրանք: Եթե դուք նոր եք Python-ում, սկսեք հիմունքներից և կառուցեք ձեր առաջին նախագիծը: