انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

اوبونتو ۲۴٫۰۴ با پشتیبانی بلند مدّت (۱۲ سال) منتشر شد 🎉

نویسنده موضوع: مشکل pip  (دفعات بازدید: 371 بار)

0 کاربر و 7 مهمان درحال مشاهده موضوع.

آنلاین learner:~$

  • High Sr. Member
  • *
  • ارسال: 619
  • جنسیت : پسر
  • روزی روزه گاری در گنو/لینوکس
مشکل pip
« : 08 تیر 1403، 03:16 ب‌ظ »
درود
من بسته pip  رو دارم ولی وقتی میخوام از دستور pip install numpy  استفاده بکنم خطای زیر رو میده:
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 دانلود و نصب شد اما این ارور به نظر مشکل زا میاد به خاطر همین میخوام رفعش بکنم.
« آخرین ویرایش: 08 تیر 1403، 03:23 ب‌ظ توسط learner:~$ »
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1273
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
پاسخ : مشکل pip
« پاسخ #1 : 08 تیر 1403، 06:53 ب‌ظ »
یه مدته اینجوری شده رو بیشتر توزیع ها و یا باید از پکیج منیجر توزیعتون اون کتابخونه رو نصب کنید (که خیلی کتابخونه هارو نداره) یا یه venv ایجاد کنید و تو اون نصب کنید و یا با --break-system-packages نصب کنید.

آنلاین learner:~$

  • High Sr. Member
  • *
  • ارسال: 619
  • جنسیت : پسر
  • روزی روزه گاری در گنو/لینوکس
پاسخ : مشکل pip
« پاسخ #2 : 08 تیر 1403، 07:40 ب‌ظ »
یه مدته اینجوری شده رو بیشتر توزیع ها و یا باید از پکیج منیجر توزیعتون اون کتابخونه رو نصب کنید (که خیلی کتابخونه هارو نداره) یا یه venv ایجاد کنید و تو اون نصب کنید و یا با --break-system-packages نصب کنید.
موقتی هست درسته؟! امیدوارم که هرچه سریع تر درست بشه راه و روش دیگه ایی نداره ؟‌ با استفاده از curl ؟
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین abc

  • Jr. Member
  • *
  • ارسال: 57
  • جنسیت : پسر
پاسخ : مشکل pip
« پاسخ #3 : 08 تیر 1403، 07:55 ب‌ظ »
این ارور بیشتر یه نوع اخطاره. اگر اشتباه نکنم دلیلش هم این است که pip سعی می‌کند کتابخانه را در مسیر /usr/lib/ نصب کند ولی به خاطر مسائل امنیتی (چون کتابخانه‌های Pypi نظارت خاصی رویشان نیست) و همچنین به خاطر عدم تداخل با کتابخانه‌های پایتونی که سیستم‌عامل ازشون استفاده می‌کند، این اجازه به ‌‌pip داده نمی‌شود. با اضافه کردن دستور sudo می‌توانی نصب کنی (البته نمی‌دانم. تا حالا امتحان نکردم) ولی اصلا پیشنهاد نمی‌شود (هم به خاطر مسائل امنیتی و هم اینکه ممکن است باعث تداخل در فایل‌های پایتون سیستم شود).

یه محیط venv بسازید و بعد از فعال کردن اون با pip کتابخانه‌ها را نصب کنید.

یه روش دیگه هم این است که یه دایرکتوری اضافه کنی، مثلا mypip
‍~/mypip
بعد pip رو اینجوری اجرا کنی:
pip install --target mypip pandas
الان کتابخانه پایتون در دایرکتوری mypip نصب می‌شود. حالا در فایل پایتون می‌توانی از طریق زیر اون رو مسیر دهی کنی.
import sys, os
sys.path.append(os.path.expanduser('~/mypip'))
یا os رو هم نخواستی ایپورت کنی می‌توانی همان مسیر کامل رو در sys.path اضافه کنی.

باز اگر خواستی با break-system-packages کتابخانه را نصب کنید به نظرم بهتر است اول پایتون را اجرا کنید، بعد:
import sys
print(sys.path)
که لیستی از مسیرهایی که به طور پیش فرض پایتون می‌خواند را برای شما پرینت می‌گیرد. کتابخانه را با استفاده از target در مسیری که فایلی در آن نیست نصب کنید.
-------
پانویس: متن را هزار دفعه ویرایش کردم (چرا اینقدر غلط تایپی دارم؟)
« آخرین ویرایش: 08 تیر 1403، 08:05 ب‌ظ توسط abc »
~

آنلاین learner:~$

  • High Sr. Member
  • *
  • ارسال: 619
  • جنسیت : پسر
  • روزی روزه گاری در گنو/لینوکس
پاسخ : مشکل pip
« پاسخ #4 : 08 تیر 1403، 08:07 ب‌ظ »
سلام میشه راهنمایی کنید چطور یه محیط venv  بسازم ؟؟ داکیومنت و اروری که میداد رو خوندم و خودش هم توضیح داده ولی ممنون میشم شما هم راهنمایی کنید  :)
باید در محل خاصی انجام بدم؟ تو پایتون تازه کارم #-o
از همه جالب تر اینه که میتونم بنویسم pip install pandas  و دستور اجر میشه ولی وقتی مینویسم pip3 install pandas  همون اروری که گفتم رو میده  ](*,) راستی وقتی کتابخانه مرد نظر رو در محیط venv نصب کردم فقط باید در همون دایرکتور و مسیر اجرا بشه؟؟ آیا میشه از  LSP  برای اون کتابخانه استفاده کرد؟‌ خیلی نگران این موضوع هستم
« آخرین ویرایش: 08 تیر 1403، 08:18 ب‌ظ توسط learner:~$ »
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین abc

  • Jr. Member
  • *
  • ارسال: 57
  • جنسیت : پسر
پاسخ : مشکل pip
« پاسخ #5 : 08 تیر 1403، 08:22 ب‌ظ »
چندتا روش داره. به نظرم سر راست‌ترش  اینه: حالا دقیق نمی‌دانم در آرچ هم باید بنویسی پایتون۳ یا پایتون یا باید چیز دیگری هم نصب کنی یا نه که اگر اجرا کنی یا اجرا می‌شه یا ارور می‌ده و می‌فهمیم)
python3 -m venv .myvenv
البته ترمینال رو در مسیر ~ اجرا کرده‌ام. سلیقه‌ی خودم اینه که اسمش .MyVenv با تا پوشه‌اش ‌پنهان باشه. با این دستور فعال می‌شود:
source .myvenv/bin/activate
این فایل رو هم می‌توانی اینجوری در مسیر اصلی کپی کنی:
cp .myvenv/bin/activate .act-myvenv
تا سر راست‌تر فعال بشه:
source .act-myvenv
هر وقت هم فعالش کردی می‌توانی با pip هرچی خواستی نصب کنی و به طور پیشفرض در همین دایرکتوری ‌‌.myvenv کتابخانه نصب می‌شود (این اسامی کاملا سلیقه‌ایه. مسیر نصب و... هم همین‌طور)
« آخرین ویرایش: 08 تیر 1403، 08:25 ب‌ظ توسط abc »
~

آفلاین abc

  • Jr. Member
  • *
  • ارسال: 57
  • جنسیت : پسر
پاسخ : مشکل pip
« پاسخ #6 : 08 تیر 1403، 08:29 ب‌ظ »
وقتی venv رو فعال کنی اون مسیر به مسیرهای پیش‌فرض اضافه می‌شود و دیگه مهم نیست در چه دایرکتوری‌ای هستی. برای اینکه متوجه شوی چه اتفاقی می‌افتد یک بار در حالت عادی و یک بار بعد از فعال کردن venv در ترمینال وارد python3 بشو و این رو اجرا کن:
import sys
sys.path
~

آنلاین learner:~$

  • High Sr. Member
  • *
  • ارسال: 619
  • جنسیت : پسر
  • روزی روزه گاری در گنو/لینوکس
پاسخ : مشکل pip
« پاسخ #7 : 08 تیر 1403، 08:35 ب‌ظ »
درود
دستور اول شما رو زدم که با ارور مواجه شد:
/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 ؟
وقتی در یه یک مسیر دیگه و دایرکتوری دیگه هستم میتونم از این دایرکتوری استفاده کنم؟‌ یا باید به برنامه با استغاده از دستور خاصی پیوند( لینک ) کنم بع برنامه خودم؟؟ یا میتونم در یک میحط IDE  وقتی که تویه این دایرکتوری نیست از کتابخانه موردنظرم استفاده بکنم؟ منظورم LSP  و تکمیل خودکار کد و ... اینجور چیز هایه مربوط به اون کتابخانه هست
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین abc

  • Jr. Member
  • *
  • ارسال: 57
  • جنسیت : پسر
پاسخ : مشکل pip
« پاسخ #8 : 08 تیر 1403، 09:16 ب‌ظ »
دقیقا چی رو اجرا کردی؟ این را؟
python3 -m venv .myvenv
pyvenv  چی هست؟ فکر کنم یه چیز رو اشتباه ران کردی. این دستور یعنی اینکه در دایرکتوری دلخواهی به نام .myvenv محیط مجازی رو بساز.
گفتم از اون بابت مشکلی تیست مگر اینکه یه برنامه‌ای خارج از ترمینال باشه و در اینصورت باید طبق روش خودش محیط مجازی را فعال کنی.
~

آنلاین learner:~$

  • High Sr. Member
  • *
  • ارسال: 619
  • جنسیت : پسر
  • روزی روزه گاری در گنو/لینوکس
پاسخ : مشکل pip
« پاسخ #9 : 08 تیر 1403، 10:34 ب‌ظ »
دقیقا چی رو اجرا کردی؟ این را؟
python3 -m venv .myvenv
pyvenv  چی هست؟ فکر کنم یه چیز رو اشتباه ران کردی. این دستور یعنی اینکه در دایرکتوری دلخواهی به نام .myvenv محیط مجازی رو بساز.
گفتم از اون بابت مشکلی تیست مگر اینکه یه برنامه‌ای خارج از ترمینال باشه و در اینصورت باید طبق روش خودش محیط مجازی را فعال کنی.
آخ آخ ببخشید خروجی رو اشتباهی دادم  ](*,) پس بزار از اول بگم:
در دایرکتوری دسکتاپ اول یک دایرکتوری به نام pyvenv  ساختم بعد دستور python -m pyvenv رو زدم. اما به نظر میرسه که کلا اشتباه متوجه شدم  ](*,) و کلا دستورات رو اشتباه زدم
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین abc

  • Jr. Member
  • *
  • ارسال: 57
  • جنسیت : پسر
پاسخ : مشکل pip
« پاسخ #10 : 08 تیر 1403، 10:49 ب‌ظ »
خودش دایرکتوری رو می‌سازه (تو نباید از قبل بسازی یا اینکه نیاز نیست بسازی. تا حالا تست نکردم ببینم نباید اینکار رو کرد یا اینکه اضافه کاریه)
~

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1215
  • جنسیت : پسر
پاسخ : مشکل pip
« پاسخ #11 : 08 تیر 1403، 11:38 ب‌ظ »
در پیام خطایی که ارسال کردید به صورت واضح گفته شده که باید چه کار کنید.
خلاصهٔ موضوع اینه که نباید بسته‌ای را با pip به صورت سراسری(system wide) نصب کنید.

دو راه دارید.
اگر بسته در مخازن توزیع موجود است با مدیر بسته به شکل  python-xyz که xyz نام ماژول پایتون است نصبش کنید.
یا پس از ساخت یک محیط مجازی و فعال‌سازی آن ماژول را با pip به شکل زیر نصب کنید.
python3 -m venv env
source env/bin/activate
python3 -m pip install new_module

برای مطالعهٔ بیشتر اینجا را ببینید.



آنلاین learner:~$

  • High Sr. Member
  • *
  • ارسال: 619
  • جنسیت : پسر
  • روزی روزه گاری در گنو/لینوکس
پاسخ : مشکل pip
« پاسخ #12 : 09 تیر 1403، 11:26 ق‌ظ »
درود
دستورات قبلی رو با دقت بیشتری زدم که الان این فایل ها در این دایرکتوری موجود هست:
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.
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین abc

  • Jr. Member
  • *
  • ارسال: 57
  • جنسیت : پسر
پاسخ : مشکل pip
« پاسخ #13 : 09 تیر 1403، 12:43 ب‌ظ »
نقل‌قول
من این دستور رو متوجه نشدم:
نقل‌قول

    source env/bin/activate
وقتی محیط مجازی را ساختی حالا به هر نامی، در آن مسیری که تعریف کردی یک دایرکتوری به همان نام ساخته می‌شود که داخلش دایرکتوری bin وجود دارد. حالا با این دستور source با فراخوانی activate محیط مجازی را فعال می‌کنیم (تا سیستم بفهمد از کدام محیط مجازی باید استفاده کند) شاید نیاز داشته باشی بسته به ورژن‌های مختلف کتابخانه‌ها چندتا محیط مجازی داشته باشی. وقتی محیط مجازی را فعال کنید در خود ترمینال مشخص می‌شه که فعال شده (اسمسش قبل از اسم یوزرت نشان داده می‌شود). وقتی محیط مجازی فعال باشد آن وقت دستور pip کتابخانه‌ها را در دایرکتوریی محیط مجازی‌ات نصب می‌کند.
« آخرین ویرایش: 09 تیر 1403، 12:48 ب‌ظ توسط abc »
~

آنلاین learner:~$

  • High Sr. Member
  • *
  • ارسال: 619
  • جنسیت : پسر
  • روزی روزه گاری در گنو/لینوکس
پاسخ : مشکل pip
« پاسخ #14 : 09 تیر 1403، 06:34 ب‌ظ »
نقل‌قول
من این دستور رو متوجه نشدم:
نقل‌قول

    source env/bin/activate
وقتی محیط مجازی را ساختی حالا به هر نامی، در آن مسیری که تعریف کردی یک دایرکتوری به همان نام ساخته می‌شود که داخلش دایرکتوری bin وجود دارد. حالا با این دستور source با فراخوانی activate محیط مجازی را فعال می‌کنیم (تا سیستم بفهمد از کدام محیط مجازی باید استفاده کند) شاید نیاز داشته باشی بسته به ورژن‌های مختلف کتابخانه‌ها چندتا محیط مجازی داشته باشی. وقتی محیط مجازی را فعال کنید در خود ترمینال مشخص می‌شه که فعال شده (اسمسش قبل از اسم یوزرت نشان داده می‌شود). وقتی محیط مجازی فعال باشد آن وقت دستور pip کتابخانه‌ها را در دایرکتوریی محیط مجازی‌ات نصب می‌کند.
دستور رو وارد کردم اما چیز خاصی ننوشت ( اصلا هیچی ننوشت)‌ فقط پایانه این شکلی شد :
(pyvenv)
اسم دایرکتوری که برای محیط مجازی ساختم رو قبل از دایرکتوری که توش هستم میاره
ولی وقتی میخوام الان دستور  python3 -m pip install pandas  رو بزنم  این خروجی رو بهم میده:‌
/home/learner/Desktop/pyvenv/bin/python3: No module named install
« آخرین ویرایش: 09 تیر 1403، 06:39 ب‌ظ توسط learner:~$ »
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.