Score:2

ข้อผิดพลาดการแบ่งส่วนขณะติดตั้ง Python 3.5: surepip

ธง in

ฉันพบข้อผิดพลาดในการแบ่งกลุ่มขณะพยายามติดตั้ง Python 3.5 บน Ubuntu 21.10

$ guettli@p15:~$ pyenv ติดตั้ง 3.5.8

กำลังดาวน์โหลด Python-3.5.8.tar.xz...
-> https://www.python.org/ftp/python/3.5.8/Python-3.5.8.tar.xz
กำลังติดตั้ง Python-3.5.8...

การสร้างล้มเหลว (Ubuntu 21.10 โดยใช้ python-build 20180424)

ตรวจสอบหรือล้างแผนผังการทำงานที่ /tmp/python-build.20211119144903.305257
ผลลัพธ์บันทึกไปที่ /tmp/python-build.20211119144903.305257.log

10 บรรทัดบันทึกล่าสุด:
ถ้าทดสอบ "xupgrade" != "xno" ; แล้ว \
    เคสอัพเกรดใน \
        อัปเกรด) surepip="--อัปเกรด" ;; \
        ติดตั้ง|*) surepip="" ;; \
    เอสแซค; \
     ./python -E -m แน่ใจ pip \
        $asurepip --root=/ ; \
ไฟ
ข้อผิดพลาดการแบ่งส่วน (คอร์ดัมพ์)

สิ่งเดียวกันนี้เกิดขึ้นเมื่อฉันติดตั้ง Python-3.5.10.tar.xz (ไม่มี pyenv) ตอนนี้ฉันทำอะไรได้บ้าง

รุ่น: อูบุนตู 21.10
ผลลัพธ์ของ กำหนดค่า: https://pastebin.com/rie17s8Z
ผลลัพธ์ของ ทำ: https://pastebin.com/F3C4evR6
ผลลัพธ์ของ ทำการติดตั้ง: https://paste2.org/LKxHUYkM

ด้วย PYTHONFAULTHANDLER:

guettli@p15:~/Downloads/Python-3.5.10$ PYTHONFAULTHANDLER=1 LANG=C python3.5 -m ให้แน่ใจว่าpip
ข้อผิดพลาดร้ายแรงของ Python: ข้อผิดพลาดในการแบ่งส่วน

เธรดปัจจุบัน 0x00007fb703b40740 (โทรล่าสุดก่อน):
  ไฟล์ "/usr/local/lib/python3.5/ctypes/__init__.py", บรรทัด 276 ใน _reset_cache
  ไฟล์ "/usr/local/lib/python3.5/ctypes/__init__.py", บรรทัด 541 ใน <โมดูล>
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 222 ใน _call_with_frames_removed
  ไฟล์ "<frozen importlib._bootstrap_external>", บรรทัด 697 ใน exec_module
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 673 ใน _load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 957 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "/usr/local/lib/python3.5/uuid.py", บรรทัด 464 ใน <โมดูล>
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 222 ใน _call_with_frames_removed
  ไฟล์ "<frozen importlib._bootstrap_external>", บรรทัด 697 ใน exec_module
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 673 ใน _load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 957 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/filepost.py" บรรทัดที่ 4 ใน <โมดูล>
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 634 ใน _load_backward_compatible
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 664 ใน _load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 957 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/request.py" บรรทัดที่ 7 ใน <โมดูล>
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 634 ใน _load_backward_compatible
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 664 ใน _load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 957 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/connectionpool.py" บรรทัดที่ 41 ใน <โมดูล>
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 634 ใน _load_backward_compatible
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 664 ใน _load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 957 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/__init__.py" บรรทัดที่ 8 ใน <โมดูล>
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 634 ใน _load_backward_compatible
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 664 ใน _load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 957 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 222 ใน _call_with_frames_removed
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 1015 ใน _handle_fromlist
  ไฟล์ "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/__init__.py" บรรทัดที่ 27 ใน <โมดูล>
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 634 ใน _load_backward_compatible
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 664 ใน _load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 957 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 222 ใน _call_with_frames_removed
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 943 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 222 ใน _call_with_frames_removed
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 943 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/__init__.py" บรรทัด 62 ใน <โมดูล>
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 634 ใน _load_backward_compatible
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 664 ใน _load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 957 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 222 ใน _call_with_frames_removed
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 943 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 222 ใน _call_with_frames_removed
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 943 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 222 ใน _call_with_frames_removed
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 943 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/__init__.py" บรรทัดที่ 21 ใน <โมดูล>
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 634 ใน _load_backward_compatible
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 664 ใน _load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 957 ใน _find_and_load_unlocked
  ไฟล์ "<frozen importlib._bootstrap>", บรรทัด 968 ใน _find_and_load
  ไฟล์ "/usr/local/lib/python3.5/ensurepip/__init__.py", บรรทัดที่ 40 ใน _run_pip
  ไฟล์ "/usr/local/lib/python3.5/ensurepip/__init__.py", บรรทัด 116 ใน bootstrap
  ไฟล์ "/usr/local/lib/python3.5/ensurepip/__init__.py", บรรทัด 209 ใน _main
  ไฟล์ "/usr/local/lib/python3.5/ensurepip/__main__.py", บรรทัดที่ 4 ใน <โมดูล>
  ไฟล์ "/usr/local/lib/python3.5/runpy.py", บรรทัด 85 ใน _run_code
  ไฟล์ "/usr/local/lib/python3.5/runpy.py", บรรทัด 193 ใน _run_module_as_main
ข้อผิดพลาดการแบ่งส่วน (คอร์ดัมพ์)
user535733 avatar
cn flag
บันทึกบอกว่าอะไร?
guettli avatar
in flag
@ user535733 ในเอาต์พุตด้านบน คุณจะเห็นสิบบรรทัดสุดท้ายของเอาต์พุต ไม่มีอะไรที่ดูเกี่ยวข้องในบรรทัดที่อยู่เหนือสิบบรรทัดนี้
user535733 avatar
cn flag
@guetti แน่นอน แต่นั่นทำให้เกิดคำถาม *เหตุใดเชลล์สคริปต์จึงส่งออกไปยังบันทึกของคุณ* ดูมากกว่า 10 บรรทัดสุดท้าย
in flag
มีอะไรพิเศษสำหรับการติดตั้งของคุณหรือไม่? ฉันได้ติดตั้ง 3.5.10 (ผ่าน `.tar.xz`) ในการติดตั้ง 20.04 และ 21.04 ในเครื่องเสมือนโดยไม่มีการร้องเรียน ไม่แน่ใจว่าสิ่งใดที่ขัดขวางไม่ให้คุณติดตั้งเวอร์ชันเฉพาะนี้ ...
Carles Mateo avatar
cn flag
ฉันสงสัยว่าการอ้างอิงบางอย่างสำหรับการสร้าง Python เวอร์ชันนี้เข้ากันไม่ได้กับ Ubuntu 21.10 คุณต้องการเวอร์ชัน 3.5.8 หรือไม่ คุณใช้เวอร์ชันที่ทันสมัยกว่าเช่น 3.8 ไม่ได้หรือ ฉันจะลองว่ามันทำงานในคอนเทนเนอร์ Docker กับ Ubuntu 20.04 LTS หรือไม่
guettli avatar
in flag
@CarlesMateo เกิดข้อผิดพลาดเดียวกันหากฉันใช้ Python 3.5.10 น่าเสียดายที่ฉันต้องการ Python 3.5 สำหรับกรณีนี้
ru flag
คุณอาจต้องการทราบว่า Django สมัยใหม่ทำงานไม่ถูกต้องบน Python 3.5 ดังนั้นหากคุณติดอยู่กับ django แบบเก่าซึ่งมีช่องโหว่ด้านความปลอดภัยมากมาย คุณจะพบกับปัญหาที่ใหญ่กว่าที่นี่
abu-ahmed al-khatiri avatar
in flag
ฉันได้ติดตั้ง 3.5.8 ผ่าน .tar.xz โดยไม่มีการร้องเรียน คุณอาจต้องการ `echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc`
guettli avatar
in flag
@abu-ahmedal-khatiri คุณทำสิ่งนี้บน Ubuntu 21.10 หรือไม่
abu-ahmed al-khatiri avatar
in flag
@guettli ฉันอยู่ที่ 20.04
Score:4
ธง in

ฉันพบวิธีแก้ปัญหาที่นี่: https://giters.com/pyenv/pyenv/issues/1889

ขั้นตอนที่ 1: สร้างไฟล์ segfault.patch:

--- รวม / objimpl.h
+++ รวม/objimpl.h
@@ -250,7 +250,7 @@
         ยูเนี่ยน _gc_head *gc_prev;
         Py_ssize_t gc_refs;
     } กค;
- ดัมมี่คู่; /* บังคับให้จัดตำแหน่งกรณีเลวร้ายที่สุด */
+ หุ่นคู่ยาว /* บังคับให้จัดตำแหน่งกรณีเลวร้ายที่สุด */
 } PyGC_Head;

 PyGC_Head ภายนอก *_PyGC_generation0;
--- วัตถุ/obmalloc.c
+++ วัตถุ/obmalloc.c
@@ -643,8 +643,8 @@
  *
  * คุณไม่ควรเปลี่ยนสิ่งนี้เว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่
  */
-#define ALIGNMENT 8 /* ต้องเป็น 2^N */
-#กำหนด ALIGNMENT_SHIFT 3
+#define ALIGNMENT 16 /* ต้องเป็น 2^N */
+#กำหนด ALIGNMENT_SHIFT 4

 /* คืนค่าจำนวนไบต์ในคลาสขนาด I เป็น uint */
 #define INDEX2SIZE(I) (((uint)(I) + 1) << ALIGNMENT_SHIFT)

ขั้นตอนที่ 2: ใช้แพทช์:

user@host:Python-3.5.10$ patch -p0 < segfault.patch

ขั้นตอนที่ 3: สร้าง && sudo ทำการติดตั้ง

abu-ahmed al-khatiri avatar
in flag
ฉันอยู่ใน Impish แล้ว ฉันลองแล้ว ได้รับการโหวตให้เป็นคำตอบที่ยอดเยี่ยม
Score:1
ธง cn

ฉันลองสิ่งนี้และได้รับข้อผิดพลาดเดียวกัน ยังพยายาม 3.5.10 ที่ดีที่สุดในสายการเผยแพร่นี้และยังคงเหมือนเดิม ฉันคิดว่ามันเป็นปัญหากับ pyenv และลอง 2.2.0 แต่ก็ยังได้ผลเหมือนเดิม ดังนั้นฉันจึงดาวน์โหลด Python 3.5.8 และดำเนินการติดตั้งด้วยตนเอง (ดูที่ Python ในไดเร็กทอรีการติดตั้ง เอกสาร) กับ:

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

ทำ

แต่ใน ทำ งูหลามวางสายในการทดสอบการกระจาย ดังนั้นคำแนะนำคืออย่าใช้ตัวเลือกใดๆ กับ ./กำหนดค่า. จากนั้นเรียกใช้:

ทำ

sudo ทำการติดตั้ง หรือ sudo ทำ altinstall

มีปัญหามากกว่าหนึ่งปัญหาใน build 3.5.8 นี้ ซึ่งสาเหตุหลักที่ทำให้ pyenv ไม่ทำงานน่าจะเป็นเพราะสิ่งนี้:

/home/<me>/Python-3.5.8/Modules/nismodule.c:17:10: ข้อผิดพลาดร้ายแรง: rpc/rpc.h: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว 17 | #รวม <rpc/rpc.h>

จากนั้นใช้ Pycharm เพื่อสร้างโปรเจ็กต์ของคุณหรือเพียงแค่ใช้ venv หรือ virtulenv

guettli avatar
in flag
ขอบคุณสำหรับการทำซ้ำ น่าเสียดายที่ฉันยังคงได้รับ seg-fault แม้ว่าฉันจะใช้แหล่งที่แยกออกมาใหม่และไม่ได้ให้ตัวเลือกใด ๆ ในการ 'กำหนดค่า' มันเกิดขึ้นระหว่าง `sudo make altinstall` เช่นกัน
mike mcleod avatar
cn flag
@guettli คุณช่วยให้ข้อมูลเพิ่มเติมได้ไหม: สิ่งที่คุณทำและผลลัพธ์? อาจเป็นไปได้ว่า 3.5.8 มีข้อบกพร่องร้ายแรงในรุ่น แต่ฉันยังคงสามารถสร้างไฟล์เรียกทำงานขึ้นมาได้
guettli avatar
in flag
คุณบอกว่าคุณสามารถสร้างข้อผิดพลาดซ้ำได้ ดี. ฉันไม่ได้ทำอะไรเป็นพิเศษ เพียงแค่ untar, กำหนดค่า, สร้าง, sudo ทำการติดตั้ง ฉันอัปโหลดบันทึกของแต่ละขั้นตอนไปยังคำถาม
Score:1
ธง pk

มินิคอนด้า

ฉันแนะนำให้ติดตั้ง miniconda เพื่อจัดการสภาพแวดล้อมเสมือนจริงของคุณ และติดตั้งเวอร์ชันไพธอนที่ต้องการภายใน env ที่สร้างขึ้นใหม่

ในความคิดของฉัน มันเป็นวิธีแก้ปัญหาที่ดี ไม่บวมเท่าอนาคอนดา และคุณยังสามารถใช้ pip, บทกวี หรือซอฟต์แวร์การจัดการแพ็คเกจอื่นๆ ที่คุณต้องการได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา