استفاده از یک پکیج در چندین environment - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

استفاده از یک پکیج در چندین environment

0 امتیاز
سلام.من در حال توسعه ی پکیجی هستم و قصد دارم این پکیج را در چند venv استفاده کنم .آیا راهی وجود داره که این پکیج در یک مسیر مشخص در هاردم باشه و از هر venv بشه ازش استفاده کرد بدون اینکه پکیج را تک تک فلدر Lib\site-packages  هر venv کپی کنم .

کپی کردن یک مشکل دیگه هم داره زمانی که بخوام پکیج رو توسعه بدم هر بار باید همشونو آپدیت کنم
سوال شده اردیبهشت 17, 1401  بوسیله ی Oscar (امتیاز 127)   8 25 29

1 پاسخ

0 امتیاز
بله، روشی برای داشتن پکیج خود در یک مسیر خاص روی هارد دیسک و استفاده از آن در چندین محیط مجازی (venv) بدون کپی دستی پکیج در هر بار استفاده وجود دارد.
 
در ویندوز، شما می‌توانید با استفاده از لینک نمادین (symlink) از دایرکتوری `site-packages` هر محیط مجازی، به محل قرارگیری پکیج در هارد دیسک خود، اتصال بدهید. در این صورت، هرگونه تغییری که در پکیج اعمال می‌کنید، به صورت خودکار در تمام محیط‌های مجازی منعکس خواهد شد.
 
در زیر توضیح می‌دهم چگونه می‌توانید یک symlink برای پکیج خود ایجاد کنید:
 
1. در حالت مدیر سیستم ویندوز، دستورپرداز را با دسترسی ادمین باز کنید.
 
2. به دایرکتوری `Scripts` محیط مجازی خود بروید. به عنوان مثال:
  
   cd مسیر\به\venv\Scripts

 

3. با استفاده از دستور `mklink` یک symlink ایجاد کنید. قالب این دستور به صورت زیر است:
 
   mklink /D مسیر_venv\Lib\site-packages\نام_پکیج مسیر_پکیج
 
 
   `<مسیر_venv>` را با مسیر ریشه محیط مجازی جایگزین کنید، `<نام_پکیج>` را با نام پکیج خود و `<مسیر_پکیج>` را با مسیر پکیج خود در هارد دیسک تعویض کنید.
 
   به عنوان مثال، اگر محیط مجازی شما در `C:\مسیر\به\venv` قرار دارد و پکیج شما در `D:\مسیر\به\پکیج` قرار دارد، دستور به شکل زیر خواهد بود:
 
   mklink /D C:\مسیر\به\venv\Lib\site-packages\پکیج من D:\مسیر\به\پکیج

 

 
   این دستور یک symlink با نام `پکیج من` در دایرکتوری `site-packages` محیط مجازی شما ایجاد خواهد کرد که به محل قرارگیری پکیج شما اشاره می‌کند.
 
   این مراحل را برای هر محیط مجازی که می‌خواهید پکیج خود را در آن استفاده کنید تکرار کنید.
 
با ایجاد symlink، می‌توانید پکیج خود را در یک مسیر خاص روی هارد دیسک نگهداری کنید و از آن در چندین محیط مجازی استفاده کنید، بدون نیاز به کپی دستی پکیج در هر بار استفاده. هر تغییری که در پکیج اعمال می‌کنید، به صورت خودکار از طریق symlink در تمام محیط‌های مجازی منعکس خواهد شد.
پاسخ داده شده تیر 19, 1402 بوسیله ی toopak (امتیاز 2,458)   16 48 66
...