سؤال

هل هناك أي طريقة لجعلها pip العب بشكل جيد مع إصدارات متعددة من بيثون؟ على سبيل المثال ، أريد استخدام pip لتثبيت الأشياء بشكل صريح على تثبيت موقعي 2.5 أو تثبيت موقعي 2.6.

على سبيل المثال ، مع easy_install, ، أنا أستعمل easy_install-2.{5,6}.

ونعم - أعرف عن VirtualEnv ، ولا - إنه ليس حلاً لهذه المشكلة بالذات.

هل كانت مفيدة؟

المحلول

ال التوصية الحالية هو للاستخدام python -m pip, ، أين python هو إصدار Python الذي ترغب في استخدامه. هذه هي التوصية لأنها تعمل في جميع إصدارات Python ، وفي جميع أشكال VirtualEnv. علي سبيل المثال:

# The system default python:
$ python -m pip install fish

# A virtualenv's python:
$ .env/bin/python -m pip install fish

# A specific version of python:
$ python-3.6 -m pip install fish

إجابة سابقة ، غادر للأجيال القادمة:

منذ الإصدار 0.8 ، يدعم PIP pip-{version}. يمكنك استخدامه كما هو easy_install-{version}:

$ pip-2.5 install myfoopackage
$ pip-2.6 install otherpackage
$ pip-2.7 install mybarpackage

تعديل: غيرت PIP مخططها للاستخدام pipVERSION بدلاً من pip-VERSION في الإصدار 1.5. يجب عليك استخدام ما يلي إذا كان لديك pip >= 1.5:

$ pip2.6 install otherpackage
$ pip2.7 install mybarpackage

الشيك https://github.com/pypa/pip/pull/1053 لمزيد من التفاصيل


مراجع:

نصائح أخرى

على Windows ، يمكنك تنفيذ وحدة PIP باستخدام إصدار Python معين من خلال قاذفة بيثون, py.exe, ، إذا اخترت تثبيته أثناء إعداد Python 3.

py -3 -m pip install packagename
py -2 -m pip install packagename

يمكنك أن تكون أكثر تحديداً وتطلب من النسخة الفرعية الدقيقة للبيثون:

py -3.6 -m pip install packagename

للحصول على قائمة بجميع إصدارات Python المثبتة من خلال المشغل ، قم بتشغيل:

py --list

بدلاً من ذلك ، يمكنك إطلاق Python المطلوب بشكل مباشر:

C:/path/to/specific/python.exe -m pip install packagename

/path/to/python2.{5,6} /path/to/pip install PackageName لا يعمل؟

لكي يعمل هذا على أي إصدار من Python لم يتم تثبيته بالفعل ، تحتاج إلى تنزيل PIP والقيام به python*version* setup.py install. علي سبيل المثال python3.3 setup.py install. هذا يحل خطأ الاستيراد في التعليقات. (كما اقترح hbdgaf)

قمت بتثبيت Python 2.6 افتراضيًا (Amazon EC2 AMI) ، لكنني كنت بحاجة إلى Python2.7 بالإضافة إلى بعض الحزم الخارجية لتطبيقي. على افتراض أنك قمت بالفعل بتثبيت Python2.7 جنبًا إلى جنب مع Python الافتراضي (2.6 في حالتي). فيما يلي كيفية تثبيت PIP وحزم Python2.7

تثبيت PIP لإصدار Python الخاص بك:

curl -O https://bootstrap.pypa.io/get-pip.py
python27 get-pip.py

استخدم إصدار PIP محدد لتثبيت الحزم:

pip2.7 install mysql-connector-python --allow-external mysql-connector-python

لقد عملت بالنسبة لي في Windows بهذه الطريقة:

  1. لقد غيرت اسم Python Files Python.py و Pythonw.exe إلى Python3.py Pythonw3.py

  2. ثم قمت فقط بتشغيل هذا الأمر في المطالبة:

    python3 -m pip install package

توضح الإجابات الأخرى كيفية استخدام PIP مع كل من 2.x و 3.x python ، ولكن لا تظهر كيفية التعامل مع حالة توزيعات Python المتعددة (مثل Python الأصلي و Anaconda Python).

لدي ما مجموعه 3 إصدارات Python: Python الأصلي 2.7 و Python 3.5 و Anaconda Python 3.5.

إليكم كيف أقوم بتثبيت حزمة إلى:

  1. أصلي بيثون 3.5:

    /usr/bin/python3 -m pip install python-daemon
    
  2. أصلي بيثون 2.7:

    /usr/bin/python -m pip install python-daemon
    
  3. أناكوندا بيثون 3.5:

    python3 -m pip install python-daemon
    

    أو

    pip3 install python-daemon
    

    أبسط ، حيث يتغلب Anaconda على ثنائيات Python الأصلية في بيئة المستخدم.

    بالطبع ، يجب أن يتم التثبيت في أناكوندا conda الأمر ، هذا مجرد مثال.


تأكد أيضًا من تثبيت PIP لهذا python المحدد. قد تحتاج إلى تثبيت PIP يدويًا. هذا يعمل في أوبونتو 16.04:

sudo apt-get install python-pip 

أو

sudo apt-get install python3-pip

واجهت هذه القضية بنفسي مؤخرًا ووجدت أنني لم أحصل على PIP الصحيح لـ Python 3 ، على نظام Linux الخاص بي الذي يحتوي أيضًا على Python 2.

أولاً ، يجب عليك التأكد من أنك قمت بتثبيت PIP لإصدار Python الخاص بك:

لبيثون 2:

sudo apt-get install python-pip

لبيثون 3:

sudo apt-get install python3-pip

ثم لتثبيت حزم لإصدار واحد من Python أو الآخر ، ما عليك سوى استخدام ما يلي لـ Python 2:

pip install <package>

أو لبيثون 3:

pip3 install <package>

PIP هي أيضا حزمة بيثون. لذا فإن أسهل طريقة لتثبيت الوحدات النمطية على إصدار Python معين ستكون أدناه

 python2.7 /usr/bin/pip install foo

أو

python2.7 -m pip install foo

لذلك يبدو أن هناك إصدارات متعددة من easy_install و pip. يبدو أن فوضى كبيرة. على أي حال ، هذا ما فعلته لتثبيت Django لـ Python 2.7 على Ubuntu 12.10:

$ sudo easy_install-2.7 pip
Searching for pip
Best match: pip 1.1
Adding pip 1.1 to easy-install.pth file
Installing pip-2.7 script to /usr/local/bin

Using /usr/lib/python2.7/dist-packages
Processing dependencies for pip
Finished processing dependencies for pip

$ sudo pip-2.7 install django
Downloading/unpacking django
  Downloading Django-1.5.1.tar.gz (8.0Mb): 8.0Mb downloaded
  Running setup.py egg_info for package django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: django
  Running setup.py install for django
    changing mode of build/scripts-2.7/django-admin.py from 644 to 755

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
    changing mode of /usr/local/bin/django-admin.py to 755
Successfully installed django
Cleaning up...

$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> 

من هنا: https://docs.python.org/3/installing/

فيما يلي كيفية تثبيت الحزم لمختلف الإصدارات المثبتة في نفس الوقت Linux ، Mac ، Posix:

python2   -m pip install SomePackage  # default Python 2
python2.7 -m pip install SomePackage  # specifically Python 2.7
python3   -m pip install SomePackage  # default Python 3
python3.4 -m pip install SomePackage  # specifically Python 3.4
python3.5 -m pip install SomePackage  # specifically Python 3.5
python3.6 -m pip install SomePackage  # specifically Python 3.6

تشغيل شبابيك, ، استخدم قاذفة Py Python بالاشتراك مع مفتاح -M:

py -2   -m pip install SomePackage  # default Python 2
py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3   -m pip install SomePackage  # default Python 3
py -3.4 -m pip install SomePackage  # specifically Python 3.4

على Linux و Mac OS X وأنظمة Posix الأخرى ، استخدم أوامر Python ذات الإصدار بالاقتران مع -m التبديل لتشغيل النسخة المناسبة من pip:

python2.7 -m pip install SomePackage
python3.4 -m pip install SomePackage

(قد تكون أوامر PIP ذات الإصدار المناسب متاحة أيضًا)

على Windows ، استخدم py قاذفة بيثون مع -m تحول:

py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3.4 -m pip install SomePackage  # specifically Python 3.4

إذا حصلت على خطأ ل py -3.4 ثم حاول:

pip install SomePackage

تتناول معظم الإجابات هنا المشكلة ، لكنني أريد إضافة شيء ما كان يربكني باستمرار فيما يتعلق بإنشاء تثبيت بديل للبيثون في /usr/local على Centos 7. عندما قمت بالتثبيت هناك ، بدا أن Pip كان يعمل منذ أن استطعت استخدامه pip2.7 install وسيقوم بتثبيت الوحدات النمطية. ومع ذلك ، فإن ما لم أستطع معرفة ذلك هو السبب في أن نسختي المثبتة حديثًا من Python لم تكن ترى ما كنت أقوم بتثبيته.

اتضح في Centos 7 أن هناك بالفعل Python2.7 و PIP2.7 في /usr/bin مجلد. لتثبيت PIP لتوزيع Python الجديد الخاص بك ، تحتاج إلى إخبار Sudo على وجه التحديد بالذهاب إلى /usr/local/bin

sudo /usr/local/bin/python2.7 -m ensurepip

هذا يجب أن يتم تثبيت PIP2.7 في الخاص بك /usr/local/bin مجلد جنبا إلى جنب مع نسختك من بيثون. الحيلة هي أنه عندما تريد تثبيت الوحدات النمطية ، تحتاج إما إلى تعديل Sudo $PATH متغير لتضمين /usr/local/bin أو تحتاج إلى التنفيذ

sudo /usr/local/bin/pip2.7 install <module>

إذا كنت ترغب في تثبيت وحدة جديدة. استغرق الأمر مني إلى الأبد أن أتذكر ذلك sudo لم يكن يرى على الفور /usr/local/bin.

تثبيت إصدارات متعددة من Python والحزم المعنية.

إصدار Python على نفس جهاز Windows: 2.7 و 3.4 و 3.6

تركيب جميع الإصدارات الثلاثة من بيثون :

  • تثبيت Python 2.7 و 3.4 و 3.6 مع المسارات أدناه

enter image description here

مسار لجميع الإصدارات الثلاثة من بيثون :

  • تأكد من أن متغير المسار (في متغيرات النظام) له مسارات أدناه - c: python27 ؛ c: python27 scripts ؛ c: python34 ؛ c: python34 scripts ؛ c: python36 ؛ c: Python36 scripts ؛

إعادة تسمية التنفيذيين للإصدارات :

  • تم تغيير الاسم القابل للتنفيذ في Python في C: Python36 و C: Python34 إلى Python36 و Python34 على التوالي.

enter image description here

تم التحقق من موجه الأوامر مع جميع الإصدارات:

enter image description here

تثبيت الحزم بشكل منفصل لكل إصدار

enter image description here

السياق: Archlinux

عمل:
تثبيت Python2-PIP:
sudo pacman -S python2-pip

لديك الآن PIP2.7:
sudo pip2.7 install boto

اختبار (في حالتي كنت بحاجة إلى "بوتو"):
قم بتشغيل الأوامر التالية:

python2
import boto

النجاح: لا خطأ.

مخرج: كنترول+د

على سبيل المثال ، إذا قمت بتعيين إصدارات أخرى (على سبيل المثال 3.5) على أنها افتراضية وترغب في تثبيت PIP لـ Python 2.7:

  1. تنزيل PIP في https://pypi.python.org/pypi/pip (قطران)
  2. ملف UNXIP TAR
  3. قرص مضغوط إلى دليل الملف
  4. Sudo Python2.7 Setup.py تثبيت

يمكنك الانتقال على سبيل المثال C: Python2.7 Scripts ثم تشغيل CMD من هذا المسار. بعد ذلك يمكنك تشغيل PIP2.7 تثبيت yourpackage ...

سوف تثبيت الحزمة لهذا الإصدار من بيثون.

ها هو رأيي في المشكلة. يعمل لبيثون 3. الميزات الرئيسية هي:

  • يتم تجميع كل نسخة بيثون من المصدر
  • يتم تثبيت جميع الإصدارات محليًا
  • لا يقلل من تثبيت Python الافتراضي لنظامك بأي شكل من الأشكال
  • يتم عزل كل نسخة من Python مع VirtualEnv

والخطوات هي كما يلي:

  1. إذا كان لديك العديد من إصدارات Python إضافية مثبتة بطريقة أخرى ، تخلص منها ، على سبيل المثال ، إزالة $ home/.local/lib/python3.x, ، وما إلى ذلك (أيضا تلك المثبتة عالميا). لا تلمس إصدار Python3 الافتراضي لنظامك.

  2. قم بتنزيل مصدر لإصدارات Python المختلفة ضمن بنية الدليل التالية:

    $HOME/
        python_versions/ : download Python-*.tgz packages here and "tar xvf" them.  You'll get directories like this:
          Python-3.4.8/
          Python-3.6.5/
          Python-3.x.y/
          ...
    
  3. في كل دليل "Python-3.xy/" ، افعل ما يلي (افعل ( ليس استخدم "sudo" في أي من الخطوات!):

    mkdir root
    ./configure --prefix=$PWD/root 
    make -j 2
    make install
    virtualenv --no-site-packages -p root/bin/python3.x env
    
  4. في "Python_versions/" قم بإنشاء ملفات مثل هذا:

    env_python3x.bash:
    
    #!/bin/bash
    echo "type deactivate to exit"
    source $HOME/python_versions/Python-3.x.y/env/bin/activate
    
  5. الآن ، في أي وقت ترغب في اختيار Python3.x ، قم

    source $HOME/python_versions/env_python3x.bash
    

    لدخول VirtualEnv

  6. أثناء تواجدك في VirtualEnv ، قم بتثبيت حزم Python المفضلة لديك

    pip install --upgrade package_name
    
  7. للخروج من إصدار VirtualEnv و Python فقط اكتب "إلغاء تنشيط"

ربما يكون هذا هو الشيء الخطأ تمامًا الذي يجب القيام به (أنا بيثون نوب) ، لكنني دخلت للتو وتحرير ملف PIP

#!/usr/bin/env python3 <-- I changed this line.

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

لنظام التشغيل Windows على وجه التحديد:path to python.exe -m pip تثبيت packagename يعمل.

إذا كان لديك إصدارات متعددة بالإضافة إلى بنيات متعددة (32 بت ، 64 بت) ، فستحتاج إلى إضافة -32 أو -64 في نهاية الإصدار الخاص بك.

بالنسبة لنظام التشغيل Windows ، انتقل إلى CMD واكتب PY -وسيقوم بإنتاج الإصدارات التي قمت بتثبيتها. ستبدو القائمة كما يلي:

Installed Pythons found by py Launcher for Windows
 -3.7-64 *
 -3.7-32
 -3.6-32

سيكون الأمر الكامل كمثال هو:

py -3.6-32 -m pip install (package)

إذا كنت ترغب في الحصول على مزيد من العمل ، لتثبيت إصدار محدد من حزمة على إصدار معين من Python ، استخدم == (الإصدار) بعد الحزمة. كمثال،

py -3.6-32 -m pip install opencv-python==4.1.0.25
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top