error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try 'pacman -S
python-xyz', where xyz is the package you are trying to
install.
If you wish to install a non-Arch-packaged Python package,
create a virtual environment using 'python -m venv path/to/venv'.
Then use path/to/venv/bin/python and path/to/venv/bin/pip.
If you wish to install a non-Arch packaged Python application,
it may be easiest to use 'pipx install xyz', which will manage a
virtual environment for you. Make sure you have python-pipx
installed via pacman.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at
the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
خیلی عجیبه حتی دوباره pip رو نصب کردم ولی باز این ارور رو میده.هرچند که با pacman دانلود و نصب شد اما این ارور به نظر مشکل زا میاد به خاطر همین میخوام رفعش بکنم.
یه مدته اینجوری شده رو بیشتر توزیع ها و یا باید از پکیج منیجر توزیعتون اون کتابخونه رو نصب کنید (که خیلی کتابخونه هارو نداره) یا یه venv ایجاد کنید و تو اون نصب کنید و یا با --break-system-packages نصب کنید.موقتی هست درسته؟! امیدوارم که هرچه سریع تر درست بشه راه و روش دیگه ایی نداره ؟ با استفاده از curl ؟
~/mypip
بعد pip رو اینجوری اجرا کنی:pip install --target mypip pandas
الان کتابخانه پایتون در دایرکتوری mypip نصب میشود. حالا در فایل پایتون میتوانی از طریق زیر اون رو مسیر دهی کنی.import sys, os
sys.path.append(os.path.expanduser('~/mypip'))
یا os رو هم نخواستی ایپورت کنی میتوانی همان مسیر کامل رو در sys.path اضافه کنی. import sys
print(sys.path)
که لیستی از مسیرهایی که به طور پیش فرض پایتون میخواند را برای شما پرینت میگیرد. کتابخانه را با استفاده از target در مسیری که فایلی در آن نیست نصب کنید.python3 -m venv .myvenv
البته ترمینال رو در مسیر ~ اجرا کردهام. سلیقهی خودم اینه که اسمش .MyVenv با تا پوشهاش پنهان باشه. با این دستور فعال میشود:source .myvenv/bin/activate
این فایل رو هم میتوانی اینجوری در مسیر اصلی کپی کنی:cp .myvenv/bin/activate .act-myvenv
تا سر راستتر فعال بشه:source .act-myvenv
هر وقت هم فعالش کردی میتوانی با pip هرچی خواستی نصب کنی و به طور پیشفرض در همین دایرکتوری .myvenv کتابخانه نصب میشود (این اسامی کاملا سلیقهایه. مسیر نصب و... هم همینطور)
import sys
sys.path
/usr/bin/python3: No module named pyvenv
بعد یه دایرکتوری به همین اسم ساختم و دوباره همین دستور رو زدم و خروجی زیر رو تحویل گرفتم:/usr/bin/python3: No module named pyvenv.__main__; 'pyvenv' is a package and cannot be directly executed
خب الان چیکار کنم؟دستورات مورد نظر خودم رو تویه این دایرکتوری اجرا کنم؟ و بعد بنویسم pip install my_package_name ؟python3 -m venv .myvenv
pyvenv چی هست؟ فکر کنم یه چیز رو اشتباه ران کردی. این دستور یعنی اینکه در دایرکتوری دلخواهی به نام .myvenv محیط مجازی رو بساز.دقیقا چی رو اجرا کردی؟ این را؟آخ آخ ببخشید خروجی رو اشتباهی دادم ](*,) پس بزار از اول بگم:کد: [انتخاب]python3 -m venv .myvenv
pyvenv چی هست؟ فکر کنم یه چیز رو اشتباه ران کردی. این دستور یعنی اینکه در دایرکتوری دلخواهی به نام .myvenv محیط مجازی رو بساز.
گفتم از اون بابت مشکلی تیست مگر اینکه یه برنامهای خارج از ترمینال باشه و در اینصورت باید طبق روش خودش محیط مجازی را فعال کنی.
python3 -m venv env
source env/bin/activate
python3 -m pip install new_module
bin include lib lib64 pyvenv.cfg
من این دستور رو متوجه نشدم:source env/bin/activateخروجی دستور python3 -m pip install pandas:
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try 'pacman -S
python-xyz', where xyz is the package you are trying to
install.
If you wish to install a non-Arch-packaged Python package,
create a virtual environment using 'python -m venv path/to/venv'.
Then use path/to/venv/bin/python and path/to/venv/bin/pip.
If you wish to install a non-Arch packaged Python application,
it may be easiest to use 'pipx install xyz', which will manage a
virtual environment for you. Make sure you have python-pipx
installed via pacman.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
من این دستور رو متوجه نشدم:وقتی محیط مجازی را ساختی حالا به هر نامی، در آن مسیری که تعریف کردی یک دایرکتوری به همان نام ساخته میشود که داخلش دایرکتوری bin وجود دارد. حالا با این دستور source با فراخوانی activate محیط مجازی را فعال میکنیم (تا سیستم بفهمد از کدام محیط مجازی باید استفاده کند) شاید نیاز داشته باشی بسته به ورژنهای مختلف کتابخانهها چندتا محیط مجازی داشته باشی. وقتی محیط مجازی را فعال کنید در خود ترمینال مشخص میشه که فعال شده (اسمسش قبل از اسم یوزرت نشان داده میشود). وقتی محیط مجازی فعال باشد آن وقت دستور pip کتابخانهها را در دایرکتوریی محیط مجازیات نصب میکند.
نقلقول
source env/bin/activate
دستور رو وارد کردم اما چیز خاصی ننوشت ( اصلا هیچی ننوشت) فقط پایانه این شکلی شد :نقلقولمن این دستور رو متوجه نشدم:وقتی محیط مجازی را ساختی حالا به هر نامی، در آن مسیری که تعریف کردی یک دایرکتوری به همان نام ساخته میشود که داخلش دایرکتوری bin وجود دارد. حالا با این دستور source با فراخوانی activate محیط مجازی را فعال میکنیم (تا سیستم بفهمد از کدام محیط مجازی باید استفاده کند) شاید نیاز داشته باشی بسته به ورژنهای مختلف کتابخانهها چندتا محیط مجازی داشته باشی. وقتی محیط مجازی را فعال کنید در خود ترمینال مشخص میشه که فعال شده (اسمسش قبل از اسم یوزرت نشان داده میشود). وقتی محیط مجازی فعال باشد آن وقت دستور pip کتابخانهها را در دایرکتوریی محیط مجازیات نصب میکند.
نقلقول
source env/bin/activate
(pyvenv)
اسم دایرکتوری که برای محیط مجازی ساختم رو قبل از دایرکتوری که توش هستم میاره /home/learner/Desktop/pyvenv/bin/python3: No module named install
ERROR: XMLRPC request failed [code: -32500]
RuntimeError: PyPI no longer supports 'pip search' (or XML-RPC search). Please use https://pypi.org/search (via a browser) instead. See https://warehouse.pypa.io/api-reference/xml-rpc.html#deprecated-methods for more information.
تو استک هم چک کردم هرکی یه چیز گفته :( در ترمینال python رو بنویس بعد چندتا tab بزن شاید ببین اصلا چیزی میاره یا نه. شاید python خالی باشهنه پایتون برای من درست کار میکنه به نظرتون از condo ( اگر درست گفته باشم ) استفاده بکنم؟
/home/learner/Desktop/pyvenv/bin/python3: No module named install
یعنی اینکه چنین فایلی در آن دایرکتوری نیست. حالا ممکنه به نام python3 نباشد و نامش python خالی باشد. در کل اگر نبود میتوانی اینجوری لینک بسازی:ln -s /usr/bin/python3 /home/learner/Desktop/pyvenv/bin/python3
-----