Puncte:2

Eroare de segmentare în timpul instalării Python 3.5: assurepip

drapel in

Am avut o eroare de segmentare în timp ce încercam să instalez Python 3.5 pe Ubuntu 21.10.

$ guettli@p15:~$ pyenv install 3.5.8

Se descarcă Python-3.5.8.tar.xz...
-> https://www.python.org/ftp/python/3.5.8/Python-3.5.8.tar.xz
Se instalează Python-3.5.8...

CONSTRUIREA EȘECTĂ (Ubuntu 21.10 folosind python-build 20180424)

Inspectați sau curățați arborele de lucru la /tmp/python-build.20211119144903.305257
Rezultatele înregistrate în /tmp/python-build.20211119144903.305257.log

Ultimele 10 linii de jurnal:
if test "xupgrade" != "xno" ; atunci \
    upgrade caz în \
        upgrade) assurepip="--upgrade" ;; \
        instala|*) assurepip="" ;; \
    esac; \
     ./python -E -m assurepip \
        $ensurepip --root=/ ; \
fi
Anomalie de segmentare (core-dumping)

La fel se întâmplă și când instalez Python-3.5.10.tar.xz (fără pyenv). Ce pot face acum?

Versiune: Ubuntu 21.10
Ieșire din configurați: https://pastebin.com/rie17s8Z
Ieșire din face: https://pastebin.com/F3C4evR6
Ieșire din face instalarea: https://paste2.org/LKxHUYkM

Cu PYTHONFAULTHANDLER:

guettli@p15:~/Downloads/Python-3.5.10$ PYTHONFAULTHANDLER=1 LANG=C python3.5 -m assurepip
Eroare fatală Python: eroare de segmentare

Firul curent 0x00007fb703b40740 (cel mai recent apel mai întâi):
  Fișierul „/usr/local/lib/python3.5/ctypes/__init__.py”, linia 276 în _reset_cache
  Fișierul „/usr/local/lib/python3.5/ctypes/__init__.py”, linia 541 în <modul>
  Fișier „<frozen importlib._bootstrap>”, linia 222 din _call_with_frames_removed
  Fișier „<frozen importlib._bootstrap_external>”, linia 697 din exec_module
  Fișier „<frozen importlib._bootstrap>”, linia 673 în _load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 957 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișierul „/usr/local/lib/python3.5/uuid.py”, linia 464 în <modul>
  Fișier „<frozen importlib._bootstrap>”, linia 222 din _call_with_frames_removed
  Fișier „<frozen importlib._bootstrap_external>”, linia 697 din exec_module
  Fișier „<frozen importlib._bootstrap>”, linia 673 în _load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 957 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișierul „/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/filepost.py”, rândul 4 din <modul>
  Fișier „<frozen importlib._bootstrap>”, linia 634 în _load_backward_compatible
  Fișier „<frozen importlib._bootstrap>”, linia 664 în _load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 957 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișierul „/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/request.py”, rândul 7 din <modul>
  Fișier „<frozen importlib._bootstrap>”, linia 634 în _load_backward_compatible
  Fișier „<frozen importlib._bootstrap>”, linia 664 în _load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 957 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișierul „/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/connectionpool.py”, rândul 41 din <modul>
  Fișier „<frozen importlib._bootstrap>”, linia 634 în _load_backward_compatible
  Fișier „<frozen importlib._bootstrap>”, linia 664 în _load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 957 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișierul „/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/__init__.py”, rândul 8 din <modul>
  Fișier „<frozen importlib._bootstrap>”, linia 634 în _load_backward_compatible
  Fișier „<frozen importlib._bootstrap>”, linia 664 în _load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 957 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișier „<frozen importlib._bootstrap>”, linia 222 din _call_with_frames_removed
  Fișier „<frozen importlib._bootstrap>”, linia 1015 în _handle_fromlist
  Fișierul „/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/__init__.py”, rândul 27 din <modul>
  Fișier „<frozen importlib._bootstrap>”, linia 634 în _load_backward_compatible
  Fișier „<frozen importlib._bootstrap>”, linia 664 în _load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 957 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișier „<frozen importlib._bootstrap>”, linia 222 din _call_with_frames_removed
  Fișier „<frozen importlib._bootstrap>”, linia 943 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișier „<frozen importlib._bootstrap>”, linia 222 din _call_with_frames_removed
  Fișier „<frozen importlib._bootstrap>”, linia 943 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișierul „/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/__init__.py”, rândul 62 din <modul>
  Fișier „<frozen importlib._bootstrap>”, linia 634 în _load_backward_compatible
  Fișier „<frozen importlib._bootstrap>”, linia 664 în _load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 957 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișier „<frozen importlib._bootstrap>”, linia 222 din _call_with_frames_removed
  Fișier „<frozen importlib._bootstrap>”, linia 943 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișier „<frozen importlib._bootstrap>”, linia 222 din _call_with_frames_removed
  Fișier „<frozen importlib._bootstrap>”, linia 943 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișier „<frozen importlib._bootstrap>”, linia 222 din _call_with_frames_removed
  Fișier „<frozen importlib._bootstrap>”, linia 943 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișierul „/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/__init__.py”, rândul 21 din <modul>
  Fișier „<frozen importlib._bootstrap>”, linia 634 în _load_backward_compatible
  Fișier „<frozen importlib._bootstrap>”, linia 664 în _load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 957 în _find_and_load_unlocked
  Fișier „<frozen importlib._bootstrap>”, linia 968 în _find_and_load
  Fișierul „/usr/local/lib/python3.5/ensurepip/__init__.py”, rândul 40 în _run_pip
  Fișierul „/usr/local/lib/python3.5/ensurepip/__init__.py”, linia 116 din bootstrap
  Fișierul „/usr/local/lib/python3.5/ensurepip/__init__.py”, linia 209 în _main
  Fișierul „/usr/local/lib/python3.5/ensurepip/__main__.py”, linia 4 din <modul>
  Fișierul „/usr/local/lib/python3.5/runpy.py”, linia 85 din _run_code
  Fișierul „/usr/local/lib/python3.5/runpy.py”, linia 193 în _run_module_as_main
Anomalie de segmentare (core-dumping)
user535733 avatar
drapel cn
Ce spune jurnalul?
guettli avatar
drapel in
@user535733 în ieșirea de mai sus vedeți ultimele zece linii ale ieșirii. Nu există nimic care să pară relevant în rândurile de deasupra acestor zece rânduri.
user535733 avatar
drapel cn
@guetti, într-adevăr. Dar asta ridică întrebarea *de ce este scos un script shell în jurnalul tău?* Privește mai mult decât ultimele 10 linii.
drapel in
Există ceva unic pentru instalația dvs.? Am instalat 3.5.10 (prin `.tar.xz`) pe o instalare 20.04 și 21.04 într-o mașină virtuală fără plângere. Nu sunt sigur ce ar putea să vă împiedice să instalați această versiune specifică...
Carles Mateo avatar
drapel cn
Bănuiesc că unele dependențe pentru construirea acestei versiuni de Python nu sunt compatibile cu Ubuntu 21.10. Ai nevoie de versiunea 3.5.8? Nu poți folosi o versiune mai modernă precum 3.8?. Aș încerca dacă funcționează într-un container Docker cu Ubuntu 20.04 LTS.
guettli avatar
drapel in
@CarlesMateo aceeași eroare se întâmplă dacă folosesc Python 3.5.10. Din păcate, am nevoie de Python 3.5 pentru acest caz.
drapel ru
s-ar putea să doriți să fiți conștienți de faptul că Django modern nu funcționează corect pe Python 3.5 - așa că, dacă sunteți blocat pe vechiul django, care are multe găuri de securitate, aveți o problemă mai mare aici.
abu-ahmed al-khatiri avatar
drapel in
Am instalat 3.5.8 prin .tar.xz fără plângere. probabil că aveți nevoie de `echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc`
guettli avatar
drapel in
@abu-ahmedal-khatiri ai făcut asta pe Ubuntu 21.10?
abu-ahmed al-khatiri avatar
drapel in
@guettli sunt pe 20.04
Puncte:4
drapel in

Am gasit solutia aici: https://giters.com/pyenv/pyenv/issues/1889

Pasul 1: creați fișierul segfault.patch:

--- Include/objimpl.h
+++ Include/objimpl.h
@@ -250,7 +250,7 @@
         unire _gc_head *gc_prev;
         Py_size_t gc_refs;
     } gc;
- manechin dublu; /* forță alinierea în cel mai rău caz */
+ manechin lung dublu; /* forță alinierea în cel mai rău caz */
 } PyGC_Head;

 extern PyGC_Head *_PyGC_generation0;
--- Obiecte/obmalloc.c
+++ Obiecte/obmalloc.c
@@ -643,8 +643,8 @@
  *
  * Nu ar trebui să schimbi asta decât dacă știi ce faci.
  */
-#define ALIGNMENT 8 /* trebuie să fie 2^N */
-#define ALIGNMENT_SHIFT 3
+#define ALIGNMENT 16 /* trebuie să fie 2^N */
+#define ALIGNMENT_SHIFT 4

 /* Returnează numărul de octeți din clasa de mărime I, ca uint. */
 #define INDEX2SIZE(I) (((uint)(I) + 1) << ALIGNMENT_SHIFT)

Pasul 2: aplicați plasturele:

utilizator@gazdă:Python-3.5.10$ patch -p0 < segfault.patch

Pasul 3: make && sudo make install

abu-ahmed al-khatiri avatar
drapel in
Sunt deja pe Impish. Am încercat, un răspuns votat la minunat.
Puncte:1
drapel pk

Miniconda

Vă sugerez să instalați miniconda pentru a vă gestiona mediul virtual și să instalați versiunea python dorită în noul env creat.

După părerea mea, este o soluție decentă nu la fel de umflată ca anaconda și poți folosi în continuare pip, poezie sau orice software de gestionare a pachetelor pe care îl dorești.

Puncte:1
drapel cn

Am încercat asta și am primit aceeași eroare; De asemenea, am încercat 3.5.10 cel mai bun din această linie de lansare și tot așa. Am presupus că a fost o problemă cu pyenv și am încercat 2.2.0, dar tot același rezultat. Așa că am descărcat Python 3.5.8 și am procedat la instalarea manuală (la directorul de instalare, vezi Python docs) cu:

./configure --with-pydebug --enable-optimizations --with-lto

face

Dar în face python-ul sa oprit la testarea distribuției. Deci sfatul este să nu folosiți nicio opțiune cu ./configure. Apoi rulați:

face

sudo make install sau sudo make alinstall

Există mai mult de o problemă în această versiune 3.5.8, din care motivul principal pentru care pyenv nu funcționează pare să se datoreze:

/home/<me>/Python-3.5.8/Modules/nismodule.c:17:10: eroare fatală: rpc/rpc.h: Nu există un astfel de fișier sau director 17 | #include <rpc/rpc.h>

Apoi utilizați Pycharm pentru a vă construi proiectul sau pur și simplu utilizați venv sau virtulenv.

guettli avatar
drapel in
Vă mulțumim că l-ați reprodus. Din păcate, încă primesc eroarea seg, chiar dacă folosesc o sursă nou extrasă și nu ofer nicio opțiune de „configurare”. Se întâmplă și în timpul `sudo make altinstall`.
mike mcleod avatar
drapel cn
@guettli ai putea da mai multe informații: ce ai făcut exact și rezultatul? S-ar putea ca 3.5.8 să aibă o eroare fatală în build, dar încă pot produce un executabil.
guettli avatar
drapel in
ai spus că poți reproduce eroarea. Grozav. Nu fac nimic special. Doar untar, configura, face, sudo make install. Am încărcat jurnalele fiecărui pas la întrebare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.