💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ محمدرضا نصیری
virtualenv default packages
محمدعلی رضا حل شده توسط محمدعلی رضا

سلام وقت بخیر

 

بنده به یه مشکلی برخوردم

هروقت میخوام venv بسازم با دستور

virtualenv -p python3 <name>

بصورت پیشفرض پکیج‌های زیر رو هم نصب میکنه ( درحالی که توو ویدئو این پیکج‌ها نصب نیستن )

appdirs==1.4.3
CacheControl==0.12.6
certifi==2019.11.28
chardet==3.0.4
colorama==0.4.3
contextlib2==0.6.0
distlib==0.3.0
distro==1.4.0
html5lib==1.0.1
idna==2.8
ipaddr==2.2.0
lockfile==0.12.2
msgpack==0.6.2
packaging==20.3
pep517==0.8.2
progress==1.5
pyparsing==2.4.6
pytoml==0.1.21
requests==2.22.0
retrying==1.3.3
six==1.14.0
urllib3==1.25.8
webencodings==0.5.1

درحالیکه با دستور زیر وقتی venv میسازم هیچ پکیج پیشفرضی نصب نیست.

python3 -m venv <name>  

درضمن قبلا هیچ پکیجی روو سیستم عامل نصب نشده

سیستم عامل تازه نصب شده 

سلاااااااااااااااااااام وقت شما هم بخیر

به مشکل عجیبی خوردید. من تو اینترنت یه خورده سرچ کردم کسی به این مشکل نخورده انگار.

سیستم عامل تون چیه؟ ورژن اش؟ (بنظرم میاد لینوکس هستید)

نسخه پایتون تون؟

نسخه pip تون؟

نسخه virtualenv تون؟

بعد از ساخت virtualenv فعالش میکنید؟ و تو کامند لاین بهتون نشون میده که فعال شده؟

اگر لینوکس هستید نتیجه دستور زیر چیه؟

which python3

 

گفتید:

بصورت پیشفرض پکیج‌های زیر رو هم نصب میکنه

یعنی وقت ساخت virtualenv نصب این پکیچ هارو هم نشون تون میده؟ یا اینکه وقتی virtualenv رو فعال میکنید و pip freeze میزنید نشون میده این پکیج‌ها از قبل نصب هستن؟

محمدعلی رضا ۲۲ بهمن ۱۳۹۹، ۱۰:۳۷

سیستم عاملم ubuntu 20.04

pip روی سیستم عامل نسخه 21.0.1

pip روی venv‌های ساخته شده 20.0.2

python 3.8.5

virtualenv 20.0.17

بله بعد ساخت venv وقتی با دستور زیر فعالش میکنم خروجی زیر رو نشون میده و توو کامندلاین هم فعال میشه

created virtual environment CPython3.8.5.final.0-64 in 1029ms
 creator CPython3Posix(dest=/home/death/Projects/Academy/test/venv, clear=False, global=False)
 seeder FromAppData(download=False, html5lib=latest, msgpack=latest, pkg_resources=latest, idna=latest, ipaddr=latest, packaging=latest, colorama=latest, certifi=latest, pyparsing=latest, wheel=latest, urllib3=latest, CacheControl=latest, webencodings=latest, pytoml=latest, setuptools=latest, retrying=latest, chardet=latest, distro=latest, contextlib2=latest, appdirs=latest, pep517=latest, lockfile=latest, six=latest, requests=latest, distlib=latest, pip=latest, progress=latest, via=copy, app_data_dir=/home/death/.local/share/virtualenv/seed-app-data/v1.0.1.debian)
 activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

و پیشفرض پکیج‌های قید شد رو نصب میکنه بله وقتی venv ساخته شده رو فعال میکنم و pip freeze میزنم این پکیج‌ها رو نشون میده که نصب شدن..

خروجی دستور which python3 بصورت زیر نمایش داده میشه

/usr/bin/python3
محمدرضا نصیری ۲۲ بهمن ۱۳۹۹، ۱۱:۴۸

من و محمد رضا نصیری یه صحبت هایی رو تو تگرام کردیم که همه اش رو اینجا میذارم:

- من:

سلاااااااااااااااااااااااام
خوبی؟

این خروجی چه دستوری عه؟

created virtual environment CPython3.8.5.final.0-64 in 1029ms
 creator CPython3Posix(dest=/home/death/Projects/Academy/test/venv, clear=False, global=False)
 seeder FromAppData(download=False, html5lib=latest, msgpack=latest, pkg_resources=latest, idna=latest, ipaddr=latest, packaging=latest, colorama=latest, certifi=latest, pyparsing=latest, wheel=latest, urllib3=latest, CacheControl=latest, webencodings=latest, pytoml=latest, setuptools=latest, retrying=latest, chardet=latest, distro=latest, contextlib2=latest, appdirs=latest, pep517=latest, lockfile=latest, six=latest, requests=latest, distlib=latest, pip=latest, progress=latest, via=copy, app_data_dir=/home/death/.local/share/virtualenv/seed-app-data/v1.0.1.debian)
 activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

بنظر میاد یا داری اشتباه virtualenv میسازی یا با یه ابزار دیگه میسازی...

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

pip3 install virtualenv
virtualenv venv

درست کار میکنه؟ باز هم همون مشکل رو داری؟
دستور زیر چی؟

virtualenv -p python3 venv

 

+ محمدرضا نصیری

سلام متشکرم شما خوبین

این خروجی دستور

virtualenv -p python3 <name>

خروجی دستور :

pip3 install virtualenv

اینه :

Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: virtualenv in /usr/lib/python3/dist-packages (20.0.17)

دستور

virtualenv venv

هم کار میکنه ولی خروجیش دقیقا همون خروجی ای که الان ریپلی کردم
و وقتی فعالش میکنم و pip freeze میزنم همون پیکج هایی که قید کردم رو پیش فرض نصب کرده

دستور

virtualenv -p python3 venv

هم‌ دقیقا مثه دستوره بالاییش عمل میکنه و همون خروجی رو میده و همون پیکج هارو پیشفرض نصب میکنه

بعد یه مسئله ای هم هست خروجی pip list سیستم عامل خیلی زیاده پکیج هاش ینی اصن نرمال نیس بنظرم

نمیدونم خروجی pip list شما چیه ولی الان میفرستم خروجیشو ببینید نرماله برا سیستم عاملی که تازه نصب شده و هیچ پکیجی روو سیستم نصب نشده؟

( البته یه مسئله ای هم هست من سیستم عاملم رو رویه vmware بالا میارم
این قضیه که نمیتونه دخیل باشه توو مشکلات؟ چون بنظرم vmware ایزوله میکنه هر سیستم عامل رو خودش)

 

- من:

من بیشتر همین احتمال رو میدم. (ریپلای کردم به «ینی ممکنه virtualenv اشتباه نصب شده باشه؟»

بنظرم بهتره همه پکیج هایی که روی سیستم عاملت هست رو حذف کنی. مخصوصا virtualenv رو و دوباره نصبش کنی...
برای این کار تو این مقاله
https://stackoverflow.com/questions/۱۱۲۴۸۰۷۳/what-is-the-easiest-way-to-remove-all-packages-installed-by-pip
این دستور رو گفته:

pip freeze | xargs pip uninstall -y


و بعدش برای اطمینان این دستور هم بزن:

pip uninstall virtualenv

 

بعد دوباره نصبش کن و تست کن:

pip install virtualenv
virtualenv venv
And
virtualenv -p python3 venv

 

+ محمدرضا نصیری:

دستور اول با sudo هم پرمیژن دینای میده?

 

ولی دستور دوم برا حذف virtualenv کار کرد
حذف کرد و دوباره نصب کردم

الان درست شد و venv ای که میسازه هیچ پکیج رو پیشفرض نصب نمیکنه

ولی باز یه مسئله ای هست
توو ویدئو برایه استاد ۲..۳ تا پکیح پیشفرض نصب میشد 
اینکه اونارم نصب نمیکنه مشکلی ایجاد نمیشه؟

 

اقا حل شد
دمت گرم?

بهترین پاسخ
محمدعلی رضا ۲۲ بهمن ۱۳۹۹، ۱۵:۰۳