2011-11-11 31 views
18

Ubuntu đi kèm với Python 2.7.2+ được cài đặt trước. (Tôi cũng đã tải xuống các gói dev trăn.) Vì một vấn đề khác mà tôi gặp phải (Giải thích ở độ sâu cực đoan trong How do I replace/update the version of the expat library used by Apache?), Graham Dumpleton nói với tôi rằng bản phân phối của tôi đã xây dựng Python một cách rõ ràng theo cách sử dụng triển khai pyexpat bên ngoài. vấn đề. Ông cũng nói rằng tôi có thể xây dựng Python bản thân mình từ mã nguồn để giải quyết vấn đề. Làm thế nào tôi sẽ làm điều này trên Ubuntu? (Hãy nhớ Tôi mới sang Linux.)Làm cách nào để tự xây dựng python từ mã nguồn trên Ubuntu?

+0

Nếu bạn không nhận được câu trả lời ở đây, câu hỏi này có thể được xem bởi nhiều người Ubuntu hơn tại askubuntu.com –

+1

Điều này không thực sự đặc biệt ubuntu vì vậy tôi nghĩ rằng nó tốt hơn ở đây. Các trang web trao đổi stack khác nhau có chồng chéo đáng kể trong quan điểm của tôi. –

Trả lời

23
  1. Tại dấu nhắc shell (trong một thiết bị đầu cuối), chạy

    sudo apt-get install build-essential 
    

    này sẽ lấy tất cả các gói thông thường bạn cần phải xây dựng bất cứ điều gì (ví dụ như trình biên dịch, v.v.)

  2. Sau đó chạy

    sudo apt-get build-dep python2.7 
    

    này sẽ lấy tất cả các thư viện bạn cần xây dựng python.

  3. Sau đó tải xuống mã nguồn cho python và giải nén mã đó vào thư mục.

  4. đến đó và chạy

    ./configure --prefix=/path/where/you/want/python/installed 
    
  5. Sau đó make và sau đó make install để có được nó được xây dựng và lắp đặt:

    make && make install 
    

Nếu bạn nhấn snags trên đường, hãy hỏi lại đây và tôi sẽ cố gắng đưa ra một số hướng dẫn.

+1

Khi tôi chạy 'sudo apt-get build-dep python2.7' nó nói" E: Bạn phải đặt một số 'nguồn' URI trong sources.list của bạn ". Bất kỳ ý tưởng? (Ngoài ra, phụ lưu ý: Tôi nghĩ rằng bạn có nghĩa là để viết 'sudo apt-get cài đặt xây dựng-cần thiết mà không có -s ở phần cuối của" yếu tố cần thiết "trong lệnh đầu tiên.) –

+2

Họ cũng cần tùy chọn --enable-shared khi xây dựng Python khi họ muốn sử dụng nó với mod_wsgi và Python không xây dựng thư viện được chia sẻ theo mặc định, không lý tưởng cho việc tải động các hệ thống nhúng. –

+0

"Họ" là gì? bạn đang đề cập gì tới? Ngoài ra, trước đó, làm cách nào để giải quyết thông báo lỗi? Tôi có cần thêm thứ gì đó vào sources.list không? –

2

Giải pháp vượt trội để tự xây dựng Python là pythonbrew, quá trình này tự động hóa và cũng cho phép bạn không chỉ cài đặt nhiều phiên bản khác nhau mà còn dễ dàng lựa chọn giữa chúng.

Năm 2016, pyenv và PyRun là giải pháp khả thi nhất.

+2

+1 cho công cụ. Nó trưởng thành như thế nào? Bạn có kinh nghiệm cá nhân không? –

+0

@NoufalIbrahim: Tôi sử dụng ['pythonz'] (https://github.com/saghul/pythonz) (một nhánh đơn giản của' pythonbrew'). Nó hoạt động như quảng cáo: nó tự động hóa quá trình tải xuống các nguồn và xây dựng chúng bằng tay. – jfs

+2

Công cụ này không còn được duy trì. –

4

Bạn có thể thử sử dụng pyenv. Tôi chưa thử nó. Nhưng nhìn vào các nguồn, có vẻ như rất trưởng thành để thực hiện cài đặt bất kỳ trình thông dịch CPython nào trên bất kỳ hệ thống * ix nào.

6

Cách tốt nhất để xây dựng trăn "nóng" rất gần đây (từ github) như sau:

sudo apt-get update \ 
    && apt-get install -y build-essential git libexpat1-dev libssl-dev zlib1g-dev \ 
    libncurses5-dev libbz2-dev liblzma-dev \ 
    libsqlite3-dev libffi-dev tcl-dev linux-headers-amd64 libgdbm-dev \ 
    libreadline-dev tk tk-dev 

    git clone https://github.com/python/cpython.git 
    cd cpython && ./configure --prefix=/usr \ 
    --enable-loadable-sqlite-extensions \ 
    --enable-shared \ 
    --with-lto \ 
    --enable-optimizations \ 
    --with-system-expat \ 
    --with-system-ffi \ 
    --enable-ipv6 --with-threads --with-pydebug --disable-rpath \ 
    && make \ 
    && make install 

Nó xây dựng python rất gần đây từ các nguồn trên github.

Với điều này tôi đã xây dựng Python 3.7.0a0 (heads/master:60a6632a3d, Aug 5 2017).

Các vấn đề liên quan