Điểm:2

Lỗi phân đoạn trong khi cài đặt Python 3.5: ensurepip

lá cờ in

Tôi gặp lỗi phân đoạn khi cố gắng cài đặt Python 3.5 trên Ubuntu 21.10.

$ guettli@p15:~$ pyenv cài đặt 3.5.8

Đang tải xuống Python-3.5.8.tar.xz...
-> https://www.python.org/ftp/python/3.5.8/Python-3.5.8.tar.xz
Đang cài đặt Python-3.5.8...

XÂY DỰNG KHÔNG THÀNH CÔNG (Ubuntu 21.10 sử dụng python-build 20180424)

Kiểm tra hoặc dọn sạch cây đang hoạt động tại /tmp/python-build.20211119144903.305257
Kết quả được ghi vào /tmp/python-build.20211119144903.305257.log

10 dòng nhật ký cuối cùng:
nếu kiểm tra "xupgrade" != "xno" ; sau đó \
    trường hợp nâng cấp trong \
        nâng cấp) ensurepip="--upgrade" ;; \
        cài đặt|*) ensurepip="" ;; \
    esac; \
     ./python -E -m ensurepip \
        $ensurepip --root=/ ; \
fi
Lỗi phân đoạn (đổ lõi)

Điều tương tự cũng xảy ra khi tôi cài đặt Python-3.5.10.tar.xz (không có pyenv). Tôi có thể làm gì bây giờ?

Phiên bản: Ubuntu 21.10
đầu ra của cấu hình: https://pastebin.com/rie17s8Z
đầu ra của chế tạo: https://Pastebin.com/F3C4evR6
đầu ra của thực hiện cài đặt: https://paste2.org/LKxHUYkM

Với PYTHONFAULTHANdler:

guettli@p15:~/Downloads/Python-3.5.10$ PYTHONFAULTHANDLER=1 LANG=C python3.5 -m ensurepip
Lỗi Python nghiêm trọng: Lỗi phân đoạn

Chủ đề hiện tại 0x00007fb703b40740 (cuộc gọi gần đây nhất trước):
  Tệp "/usr/local/lib/python3.5/ctypes/__init__.py", dòng 276 trong _reset_cache
  Tệp "/usr/local/lib/python3.5/ctypes/__init__.py", dòng 541 trong <module>
  Tệp "<frozen importlib._bootstrap>", dòng 222 trong _call_with_frames_removed
  Tệp "<frozen importlib._bootstrap_external>", dòng 697 trong exec_module
  Tệp "<frozen importlib._bootstrap>", dòng 673 trong _load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 957 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "/usr/local/lib/python3.5/uuid.py", dòng 464 trong <module>
  Tệp "<frozen importlib._bootstrap>", dòng 222 trong _call_with_frames_removed
  Tệp "<frozen importlib._bootstrap_external>", dòng 697 trong exec_module
  Tệp "<frozen importlib._bootstrap>", dòng 673 trong _load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 957 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/filepost.py", dòng 4 trong <module>
  Tệp "<frozen importlib._bootstrap>", dòng 634 trong _load_backward_ compatible
  Tệp "<frozen importlib._bootstrap>", dòng 664 trong _load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 957 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/request.py", dòng 7 trong <module>
  Tệp "<frozen importlib._bootstrap>", dòng 634 trong _load_backward_ compatible
  Tệp "<frozen importlib._bootstrap>", dòng 664 trong _load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 957 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/connectionpool.py", dòng 41 trong <module>
  Tệp "<frozen importlib._bootstrap>", dòng 634 trong _load_backward_ compatible
  Tệp "<frozen importlib._bootstrap>", dòng 664 trong _load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 957 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/urllib3/__init__.py", dòng 8 trong <module>
  Tệp "<frozen importlib._bootstrap>", dòng 634 trong _load_backward_ compatible
  Tệp "<frozen importlib._bootstrap>", dòng 664 trong _load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 957 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "<frozen importlib._bootstrap>", dòng 222 trong _call_with_frames_removed
  Tệp "<frozen importlib._bootstrap>", dòng 1015 trong _handle_fromlist
  Tệp "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/packages/__init__.py", dòng 27 trong <module>
  Tệp "<frozen importlib._bootstrap>", dòng 634 trong _load_backward_ compatible
  Tệp "<frozen importlib._bootstrap>", dòng 664 trong _load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 957 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "<frozen importlib._bootstrap>", dòng 222 trong _call_with_frames_removed
  Tệp "<frozen importlib._bootstrap>", dòng 943 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "<frozen importlib._bootstrap>", dòng 222 trong _call_with_frames_removed
  Tệp "<frozen importlib._bootstrap>", dòng 943 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/__init__.py", dòng 62 trong <module>
  Tệp "<frozen importlib._bootstrap>", dòng 634 trong _load_backward_ compatible
  Tệp "<frozen importlib._bootstrap>", dòng 664 trong _load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 957 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "<frozen importlib._bootstrap>", dòng 222 trong _call_with_frames_removed
  Tệp "<frozen importlib._bootstrap>", dòng 943 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "<frozen importlib._bootstrap>", dòng 222 trong _call_with_frames_removed
  Tệp "<frozen importlib._bootstrap>", dòng 943 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "<frozen importlib._bootstrap>", dòng 222 trong _call_with_frames_removed
  Tệp "<frozen importlib._bootstrap>", dòng 943 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "/tmp/tmppx73eqwt/pip-9.0.1-py2.py3-none-any.whl/pip/__init__.py", dòng 21 trong <module>
  Tệp "<frozen importlib._bootstrap>", dòng 634 trong _load_backward_ compatible
  Tệp "<frozen importlib._bootstrap>", dòng 664 trong _load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 957 trong _find_and_load_unlocked
  Tệp "<frozen importlib._bootstrap>", dòng 968 trong _find_and_load
  Tệp "/usr/local/lib/python3.5/ensurepip/__init__.py", dòng 40 trong _run_pip
  Tệp "/usr/local/lib/python3.5/ensurepip/__init__.py", dòng 116 trong bootstrap
  Tệp "/usr/local/lib/python3.5/ensurepip/__init__.py", dòng 209 trong _main
  Tệp "/usr/local/lib/python3.5/ensurepip/__main__.py", dòng 4 trong <module>
  Tệp "/usr/local/lib/python3.5/runpy.py", dòng 85 trong _run_code
  Tệp "/usr/local/lib/python3.5/runpy.py", dòng 193 trong _run_module_as_main
Lỗi phân đoạn (đổ lõi)
user535733 avatar
lá cờ cn
Nhật ký nói gì?
guettli avatar
lá cờ in
@ user535733 trong đầu ra ở trên, bạn thấy mười dòng cuối cùng của đầu ra. Không có gì có vẻ liên quan trong các dòng trên mười dòng này.
user535733 avatar
lá cờ cn
@guetti, thực sự. Nhưng điều đó đặt ra câu hỏi *tại sao tập lệnh shell lại được xuất ra nhật ký của bạn?* Hãy xem nhiều hơn 10 dòng cuối cùng.
lá cờ in
Có bất cứ điều gì độc đáo để cài đặt của bạn? Tôi đã cài đặt 3.5.10 (thông qua `.tar.xz`) trên bản cài đặt 20.04 và 21.04 trong một máy ảo mà không có khiếu nại. Không chắc chắn điều gì có thể ngăn bạn cài đặt phiên bản cụ thể này ...
Carles Mateo avatar
lá cờ cn
Tôi nghi ngờ rằng một số phụ thuộc để xây dựng phiên bản Python này không tương thích với Ubuntu 21.10. Bạn có cần phiên bản 3.5.8 không? Bạn không thể sử dụng phiên bản hiện đại hơn như 3.8?. Tôi sẽ thử nếu nó hoạt động trong bộ chứa Docker với Ubuntu 20.04 LTS.
guettli avatar
lá cờ in
@CarlesMateo, lỗi tương tự xảy ra nếu tôi sử dụng Python 3.5.10. Thật không may, tôi cần Python 3.5 cho trường hợp này.
lá cờ ru
bạn có thể muốn biết rằng Django hiện đại không hoạt động bình thường trên Python 3.5 - vì vậy nếu bạn bị mắc kẹt trên django cũ có nhiều lỗ hổng bảo mật thì bạn gặp vấn đề lớn hơn ở đây.
abu-ahmed al-khatiri avatar
lá cờ in
tôi đã cài đặt 3.5.8 qua .tar.xz mà không có khiếu nại. có thể bạn cần `echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'xuất PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc`
guettli avatar
lá cờ in
@ abu-ahmedal-khatiri bạn đã làm điều này trên Ubuntu 21.10 chưa?
abu-ahmed al-khatiri avatar
lá cờ in
@guettli tôi vào ngày 20.04
Điểm:4
lá cờ in

Tôi tìm thấy giải pháp ở đây: https://giters.com/pyenv/pyenv/issues/1889

Bước 1: tạo tệp segfault.patch:

--- Bao gồm/objimpl.h
+++ Bao gồm/objimpl.h
@@ -250,7 +250,7 @@
         công đoàn _gc_head *gc_prev;
         Py_ssize_t gc_refs;
     } gc;
- hình nộm đôi; /* buộc căn chỉnh trường hợp xấu nhất */
+ giả đôi dài; /* buộc căn chỉnh trường hợp xấu nhất */
 } PyGC_Head;

 bên ngoài PyGC_Head *_PyGC_generation0;
--- Đối tượng/obmalloc.c
+++ Đối tượng/obmalloc.c
@@ -643,8 +643,8 @@
  *
  * Bạn không nên thay đổi điều này trừ khi bạn biết mình đang làm gì.
  */
-#define ALIGNMENT 8 /* phải là 2^N */
-#define ALIGNMENT_SHIFT 3
+#define ALIGNMENT 16 /* must be 2^N */
+#define ALIGNMENT_SHIFT 4

 /* Trả về số byte có kích thước loại I, dưới dạng uint. */
 #define INDEX2SIZE(I) (((uint)(I) + 1) << ALIGNMENT_SHIFT)

Bước 2: áp dụng các bản vá:

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

Bước 3: thực hiện && Sudo thực hiện cài đặt

abu-ahmed al-khatiri avatar
lá cờ in
tôi đã ở trên Impish. tôi đã thử nó, một bình chọn cho câu trả lời tuyệt vời.
Điểm:1
lá cờ pk

Miniconda

Tôi khuyên bạn nên cài đặt miniconda để quản lý môi trường ảo của mình và cài đặt phiên bản python mong muốn trong env mới được tạo.

Theo ý kiến ​​​​của tôi, đó là một giải pháp hợp lý không cồng kềnh như anaconda và bạn vẫn có thể sử dụng pip, thơ hoặc bất kỳ phần mềm quản lý gói nào mà bạn muốn.

Điểm:1
lá cờ cn

Tôi đã thử điều này và gặp lỗi tương tự; cũng đã thử 3.5.10 tốt nhất trong dòng phát hành này và vẫn vậy. Tôi cho rằng đó là sự cố với pyenv và đã thử 2.2.0 nhưng kết quả vẫn như vậy. Vì vậy, tôi đã tải xuống Python 3.5.8 và tiến hành cài đặt thủ công (tại thư mục cài đặt, xem Python tài liệu) với:

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

chế tạo

Nhưng trong chế tạo con trăn bị treo khi kiểm tra bản phân phối. Vì vậy, lời khuyên là không sử dụng bất kỳ tùy chọn nào với ./configure. Sau đó chạy:

chế tạo

sudo thực hiện cài đặt hoặc Sudo thực hiện cài đặt thay thế

Có nhiều hơn một vấn đề trong bản dựng 3.5.8 này, trong đó lý do chính khiến pyenv không hoạt động dường như là do điều này:

/home/<me>/Python-3.5.8/Modules/nismodule.c:17:10: lỗi nghiêm trọng: rpc/rpc.h: Không có tệp hoặc thư mục như vậy 17 | #include <rpc/rpc.h>

Sau đó, sử dụng Pycharm để xây dựng dự án của bạn hoặc đơn giản là sử dụng venv hoặc virtulenv.

guettli avatar
lá cờ in
Cảm ơn bạn đã sao chép nó. Thật không may, tôi vẫn gặp lỗi seg, ngay cả khi tôi sử dụng một nguồn mới được trích xuất và không cung cấp bất kỳ tùy chọn nào để `cấu hình`. Nó cũng xảy ra trong `Sudo make altinstall`.
mike mcleod avatar
lá cờ cn
@guettli bạn có thể cung cấp thêm thông tin không: chính xác bạn đã làm gì và đầu ra? Có thể là 3.5.8 có một lỗi nghiêm trọng trong quá trình xây dựng nhưng tôi vẫn có thể tạo một tệp thực thi.
guettli avatar
lá cờ in
bạn nói rằng bạn có thể tạo lại lỗi. Tốt đẹp. Tôi không làm gì đặc biệt. Chỉ cần gỡ cài đặt, định cấu hình, thực hiện, sudo thực hiện cài đặt. Tôi đã tải nhật ký của từng bước lên câu hỏi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.