سؤال كيف أقوم بتثبيت أحدث Python 2.7.X أو 3.X على Ubuntu؟


أرغب في تثبيت أحدث لعبة Python على Ubuntu ، تم تنزيلها من http://python.org/download/.

هل هذه طريقة صحيحة للتثبيت؟

./configure
make
make install

إذا لم يكن كذلك ، كيف أفعل ذلك؟


157
2018-02-05 12:02


الأصل


في وقت واحد ، أتصور هذا طلب من أجل تثبيت أحدث نسخة من الثعبان على أوبونتو. الآن ، مطلوب لتثبيت اكبر سنا  نسخة الثعبان على أوبونتو (لأننا ما يزال تتطلب بيثون 2.7 للكثير من الأشياء) ... tl ؛ د: هذه الإجابة لم تعد الحالية / تصحيح. بدلاً من ذلك ، بافتراض تثبيت python3 افتراضياً (وربما python2.x الأدنى) ، قم بتشغيل: sudo apt-get install python-2.7 python-pip - michael
michael_n ما الذي تتحدثين عنه؟ تجميع من مصدر لا يجعل هذه الإجابة غير صحيحة أو عفا عليها الزمن. انها مجرد طريقة مختلفة. يمكنك استخدام apt لأتمتة العملية لك إذا لزم الأمر. - jargonjunkie
أنت تستخدم ما تحتاجه. لا أرى حقاً كيف يدعم هذا إدعائك بأن هذا قد عفا عليه الزمن. كما قلت أنت نفسك ، استخدمها عندما تحتاج إليها لأنها قد لا تكون متاحة. على سبيل المثال ، يستخدم النظام الفرعي لـ windows for linux بعض حزم البرامج القديمة حتى مع توزيعة أوبونتو 16.04.1 (بيتا) ويستخدم python2.6.2 ، و python3 حتى مع أن python2.7.12 الحالي. في حالة thay ، يجب أن أقوم بالترجمة إذا كنت أرغب في الحصول على حزم حديثة - jargonjunkie
jargonjunkie كنت خارج الموضوع ، ولكن الصحيح. إذا كان السؤال هو "كيف يمكنني تثبيت python 2.7 على ubuntu 16.04+" الذي هو (منذ 16.04 متاح الآن ، وهذا هو وجهة نظري) ، فأنت ببساطة sudo apt-get install python2.7. هذا ليس أسهل فحسب ، بل هو الجواب الصحيح الوحيد ، لأنه الطريقة الوحيدة التي ستتمكن من التعامل مع تثبيت وحدات بايثون عبر apt-get واعتمادياتها بدورها. - michael
نأمل أن يساعد هذا في توضيح (إضافة إجابة). النظام البيئي لبيثون خاص جدًا / دقيق ، ويمكنك الوصول بسهولة إلى "جحيم التبعية" إذا كنت لا تقوم ببناء بيئة بيثون بعناية askubuntu.com/a/831075/17060 - michael


الأجوبة:


أولاً ، قم بتركيب بعض الاعتماديات:

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

ثم قم بتنزيل باستخدام الأمر التالي:

version=2.7.13
cd ~/Downloads/
wget https://www.python.org/ftp/python/$version/Python-$version.tgz

استخراج والذهاب إلى الدليل:

tar -xvf Python-$version.tgz
cd Python-$version

الآن ، قم بتثبيت باستخدام الأمر الذي جربته للتو ، باستخدام checkinstall بدلاً من ذلك ، لتسهيل إلغاء التثبيت إذا لزم الأمر:

./configure
make
sudo checkinstall

يتغيرون version إلى أي إصدار تحتاجه (version=2.7.1 أو version=3.6.0، فمثلا).


184
2018-02-05 12:20



استعمال sudo make install و لا altinstall لتعيينه كإصدار بيثون افتراضي - Shagun Sodhani
استعمال CXX=g++ ./configure if ./configure يصدر تحذيرًا بأنه لم يتم العثور على g ++ - srj
بعد التثبيت كما أشرنا أعلاه ، ما الأوامر التي أقوم بتشغيلها في وحدة التحكم للتحقق من أنها مثبتة بالفعل؟ - Ciwan
إنه لأمر استثنائي أن أفضل إجابة على السؤال البسيط "كيفية تثبيت بايثون" سوف يحمل مثل هذا التحذير الرهيب ، فهو مثل "هذه هي أفضل طريقة نعرفها لتثبيت بايثون وقد يكسر النظام الخاص بك" ... من المفاجئ للغاية أن موقع بايثون الرسمي يحتوي على الكثير من التنزيلات وليس صفحة واحدة من تعليمات التثبيت. - patb
بات - أفضل إجابة على السؤال البسيط "كيفية تثبيت بيثون" هو sudo apt-get install pythonالإجابة الأكثر تعقيدًا هي "كيفية تثبيت آخر python "، المعنى الضمني" من المصدر ". سيكون لديك نفس المشكلة على أي نظام تشغيل ما لم تقم بتثبيت الثنائيات سابقة التحويل من طرف ثالث ، وهو أمر محفوف بالمخاطر على أي نظام تشغيل (ويختلف بشكل كبير عبر نظام التشغيل المختلفة) أيضا هذه الإجابة هي من عام 2012 ؛ للحصول على المزيد من المشورة الأخيرة ، انظر askubuntu.com/questions/101591/... - michael


ما لم يكن لديك حقا الرغبة الملحة لتجميعها بنفسك ، فإن الطريقة المفضلة هي استخدام DeadSnakes PPA لتثبيت إصدارات Python التي لم يتم تضمينها افتراضيًا:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python2.7

إصدارات أخرى ، مثل python2.4 أو python3.6، وما إلى ذلك متوفرة أيضا.


159
2018-02-05 14:40



ملاحظة البرنامج: إذا كنت في الإصدار 10.04 ، فقد تحتاج إلى تثبيت خصائص برنامج python قبل استخدام add-apt-repository. - Craig Maloney
يوصى ببناء بيثون في البيئة المحلية ، بدلاً من تثبيته من الثنائيات السابقة للبناء - pylover
+1 :) really have a burning desire to compile it yourself - Watt
غاب عن ذكر ذلك: 1. ppa غير معتمد رسميًا ، لذلك فإن الطريقة الأكثر أمانًا هي البناء من المصدر. 2. سيؤدي ذلك إلى ثعبان عالميsudoلا يمكن لـ ers تعديل الحزم أو تثبيتها ، وليست محلية. 3. يمكن تثبيت الثعابين المتعددة محليًا في مواقع مختلفة عن طريق البناء من المصدر. - Ioannis Filippidis
apt-get install python2.7هذا تثبيت ثنائي python2.7 بدلا من الثعبان ... قبيحة !! - Dhawal


استمرار لتوثيق هذا لأحدث إصدارات أوبونتو1 : بالنسبة لخادم Ubuntu 16.04.1 ، فإن Python الافتراضي هو الإصدار 3.5 ، و Python 2.7 ليس تثبيت افتراضيا. على تثبيت جديد (لاحظ أنه لا يوجد حتى a python تنفيذ):

$ type python3 python2 python 
python3 is /usr/bin/python3
-bash: type: python2: not found
-bash: type: python: not found

$ python3 --version 
Python 3.5.2

$ python --version 
The program 'python' can be found in the following packages:
 * python-minimal
 * python3
Try: sudo apt install <selected package>

ملاحظة: قبل المتابعة ، قد ترغب في القيام بسرعة sudo apt-get update، sudo apt-get upgradeو sudo apt-get dist-upgrade (يرجى ملاحظة ما تفعله هذه الأوامر بالضبط ؛ أنا أفترض تثبيتًا جديدًا هنا.)

تثبيت python 2.7 سهل مثل:

$ sudo apt-get install python2.7

الناتج الأولي لتركيب python 2.7 كالتالي:

$ sudo apt-get install python2.7
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython2.7-minimal libpython2.7-stdlib python2.7-minimal
Suggested packages:
  python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
  libpython2.7-minimal libpython2.7-stdlib python2.7 python2.7-minimal
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,735 kB of archives.
After this operation, 15.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc, etc...

بعد تثبيت python 2.7 ،

$ type python3 python2.7 python3.5 python2 python
python3 is /usr/bin/python3
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5
bash: type: python2: not found
bash: type: python: not found

ولكن لا تزال هناك مشكلة ، حيث لا يمكنك بعد تثبيت وحدات PyPI عبر pip - على سبيل المثال ، إذا كنت تريد دفترًا مفعمًا بالحيوية ، أو أحدث تطبيق scipy أو numpy (الخ) ، فستحتاج إلى تثبيت pip وثم pip install تلك ، وما زالت تتحول إلى apt-get لتثبيت أي حاجة النظام تبعيات ، مثل graphviz أو مكتبات النظام الأساسية.

$ type pip3 pip2 pip
bash: type: pip3: not found
bash: type: pip2: not found
bash: type: pip: not found

$ python3 -m pip --version 
/usr/bin/python3: No module named pip

لذا لتثبيت نقطة ، مرة أخرى ، من السهل sudo apt-get install python-pip :

$ sudo apt-cache search -n pip | egrep '^python[0-9]*-pip'
python-pip - alternative Python package installer
python-pip-whl - alternative Python package installer
python3-pip - alternative Python package installer - Python 3 version of the package

سوف تحتاج كليهما python-pip لبيثون 2.7 pip و ال python3-pip للبيثون 3 pip. التثبيت عن طريق apt-get تأكد من تثبيت التبعيات المطلوبة ؛ على سبيل المثال ، هنا الإخراج لتثبيت pip2:

$ sudo apt-get install python-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
  libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
  libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
  manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl
  python-pkg-resources python-setuptools python-wheel python2.7-dev
Suggested packages:
  binutils-doc debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib
  autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib gcc-5-locales libgcc1-dbg
  libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
  libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc
  python-tk python-setuptools-doc
The following NEW packages will be installed:
  binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
  libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
  libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
  manpages-dev python python-all python-all-dev python-dev python-minimal python-pip
  python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7-dev
0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded.
Need to get 61.1 MB of archives.
After this operation, 169 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc...

شيء مثير للاهتمام يحدث نتيجة لهذا: لديك الآن "القياسية" (وأوصى PEP) python2 و python3 (التي ترمز فقط إلى python 2.7 و python 3.5):

$ type python3 python2 python python2.7 python3.5 
python3 is /usr/bin/python3
python2 is /usr/bin/python2
python is /usr/bin/python
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5

عليك أيضا أن تريد sudo apt-get install python3-pip. قبل التثبيت ، لديك:

$ type pip pip2 pip3
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
-bash: type: pip3: not found

$ python2 -m pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ python3 -m pip --version 
/usr/bin/python3: No module named pip

بعد التثبيت pip3،

$ sudo apt-get install python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython3-dev libpython3.5-dev python3-dev python3-setuptools python3-wheel python3.5-dev
Suggested packages:
  python-setuptools-doc
The following NEW packages will be installed:
  libpython3-dev libpython3.5-dev python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.0 MB of archives.
After this operation, 55.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
...etc...

الإصدارات الناتجة:

$ type python python2 python3 pip pip2 pip3
python is /usr/bin/python
python2 is hashed (/usr/bin/python2)
python3 is hashed (/usr/bin/python3)
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
pip3 is /usr/bin/pip3

$ pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip3 --version 
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

$ python2 -m pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ python3 -m pip --version 
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

وشيء أخير قبل أن تتمكن من البدء والبدء في تثبيت جميع وحدات Pypthon PyPI المفضلة لديك: ستحتاج على الأرجح إلى ترقية النقطة نفسها (كلا pip2 و pip3 ، بشكل منفصل ؛ أيضًا ، لا يهم إذا pip يتم استدعاء عبر python تنفيذيات أو pip التنفيذية ، يتم تخزين الترقيات الفعلية في /usr/lib):

$ sudo -H python2 -m pip install --upgrade pip
...
$ sudo -H python3 -m pip install --upgrade pip
...

يمكنك الآن تشغيل إما قائم بذاته pip أو النسخة المجمعة داخل python (عن طريق python -m pip {command}).


[1] ملخص تاريخي: أقدم أوبونتو كان فقط Python 2.6 ، وبالتالي كل الطرق المختلفة للحصول على Python 2.7+ مثبتة. في وقت لاحق ، بعد إضافة Python 2.7 إلى المستودعات العامة ، ما زال لدينا نفس التحدي لتثبيت أحدث Python 2.7 مع أحدث الإصلاحات ، والتي كانت (أيضا) ضرورية بشكل متكرر. الوضع اليوم أفضل / أبسط بكثير: بيثون 2.7 و 3.5 الحالي (وهما أساسا الإصداران الوحيدان من بيثون اللذين يهتم بهما الناس) اللذان يعتبران الآن في نظام المعاونين العامين مستقران جدًا ، لذلك لا داعي للقلق بشأن تثبيت الثعبان وحداتوليس الأحدث الثعبان. حتى الآن انتقلت بايثون "أحدث نسخة مشكلة" جزئيا الخروج من نظام التشغيل repos و apt والى PyPI pip.)


24
2017-09-29 08:50



بعد هذه التعليمات على Ubuntu 16.04.1 LTS بنجاح إعداد بيثون 2.7 والخط مثل هذا: sudo apt-get install python2.7؛ sudo apt-get install python-pip؛ sudo -H python2 -m pip install --upgrade pip؛ # التحقق من الإصدار: $ pip - الإصدار -> pip 9.0.1 من /usr/local/lib/python2.7/dist-packages (python 2.7)؛ الثعبان - piththon -> بيثون 2.7.12 - Robert Lujo
الجواب مفيد حقا - شكرا جزيلا! - Failed Scientist
العفو عن جهلي ولكن هل لي أن أعرف ماذا يعني "مجزأة" عند عرض إصدارات بايثون؟ - Failed Scientist
TalhaIrfan إنه سؤال جيد (وإذا سمحت بإجابة مبسطة): عند كتابة أمر ما في bash (كما هو الحال مع معظم الأصداف) ، يمكن أن يكون cmd اسمًا مستعارًا أو دالة أو ملفًا قابلاً للتنفيذ تم العثور عليه في $PATH. و env var PATH هي قائمة طويلة من الدلائل مع الآلاف من الملفات الموجودة فيها. لتسريع العثور على الملف القابل للتنفيذ ، تستخدم shell ذاكرة تخزين مؤقت مخبأة للبحث السريع. يمكن أن تصبح قديمة ، لذلك "مجزأ" يتيح لك معرفة أنه "تذكر" هذا الأمر تم تعيينه إلى الملف القابل للتنفيذ unix.stackexchange.com/questions/5609/... - michael
gaia قد ترغب في طرح سؤال منفصل ، حيث قد تكون هناك حاجة إلى مزيد من العودة والخروج لمعرفة ذلك (أو إذا كان أي شيء قد تغير منذ أن كتبت هذا الأمر). ربما ، أولا التحقق من ذلك على حد سواء  pip (2.7) & pip3 (3.x) تم تثبيتها / ترقيتها بالكامل ، وليس فقط السابق - أي ، sudo apt-get install python-pip python3-pip و sudo -H python2 -m pip install --upgrade pip و sudo -H python3 -m pip install --upgrade pip  ... أو إذا كانت مشكلة إذن بالفعل (يشار إليها بـ "أنها تعمل مع sudo") ، فسيكون من الصعب جدًا تتبعها. - michael


12.04

إذا كنت تتابع إجابة أشو، ثم هذا المصطلح libread5-dev يجب أن تتغير إلى libreadline-gplv2-dev. إذن الأمر الكامل سيكون:

sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

11
2017-07-26 14:37





يمكنك أيضًا تنزيله وتثبيته عبر pyenv

#Install Pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
export PATH=~/.pyenv/bin:/usr/local/hadoop/bin/:$PATH
echo 'export PYENV_ROOT="~/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

#Install Python
pyenv install 2.7.8
pyenv global 2.7.8

pyenv install 3.4.5
pyenv global 3.4.5

2
2018-03-30 07:38



هذا هو أنظف طريقة للحصول على إصدار حديث من Python على إصدار قديم من Ubuntu. يتضمن دعم virtualenv كذلك عبر pyenv-virtualenv البرنامج المساعد ، مما يجعل من السهل تثبيت التطبيقات مع متطلبات وحدة مختلفة دون الصدامات. - RichVel
تحذيرات اثنين حول pyenv: (1) أنها تعمل فقط من قذيفة bash (أو ربما zsh ، ولكن بالتأكيد لا اندفاعة وهو / bin / sh على أوبونتو) ، و (2) يتطلب shell تسجيل الدخول (على سبيل المثال ، bash --login) ، وهو أمر ليس من السهل دائمًا تحقيقه على سبيل المثال ، من Ansible. أفضل للاستخدام التفاعلي ، أقل جودة لخوادم البرمجة النصية. - RichVel