Khi tôi gặp phải những tình huống tương tự, tôi thường tránh trình quản lý gói, đặc biệt nếu việc phá vỡ một thứ gì đó, tức là một máy chủ sản xuất sẽ rất xấu hổ. Thay vào đó, tôi sẽ vào Activestate và tải xuống gói nhị phân của họ:
https://www.activestate.com/activepython/downloads/
Điều này được cài đặt bằng cách chạy một tập lệnh đặt mọi thứ vào một thư mục và không chạm vào bất kỳ tệp hệ thống nào. Trên thực tế, bạn thậm chí không cần quyền root để thiết lập nó. Sau đó, tôi thay đổi tên của tệp nhị phân thành một cái gì đó như apy26, thêm thư mục đó vào cuối PATH và bắt đầu viết mã. Nếu bạn cài đặt các gói có apy26 setup.py install
hoặc nếu bạn sử dụng virtualenv và easyinstall, thì bạn sẽ có một môi trường python linh hoạt như bạn cần mà không cần chạm vào python tiêu chuẩn hệ thống.
Các chỉnh sửa ... Gần đây tôi đã thực hiện một số công việc để xây dựng một tệp nhị phân Python di động cho Linux sẽ chạy trên bất kỳ bản phân phối nào mà không có phụ thuộc bên ngoài. Điều này có nghĩa là bất kỳ thư viện chia sẻ nhị phân nào được mô-đun Python di động cần thiết đều là một phần của bản dựng, được bao gồm trong tarball và được cài đặt trong cấu trúc thư mục riêng của Python. Bằng cách này, bạn có thể cài đặt Python cho ứng dụng của mình mà không can thiệp vào hệ thống đã cài đặt Python.
Trang github của tôi có tập lệnh xây dựng đã được kiểm tra kỹ lưỡng trên Ubuntu Lucid 10.04 LTS cả bản cài đặt 32 và 64 bit. Tôi cũng đã xây dựng nó trên Debian Etch nhưng đó là cách đây một thời gian và tôi không thể đảm bảo rằng tôi đã không thay đổi điều gì đó. Cách dễ nhất để làm điều này là bạn chỉ cần đặt lựa chọn Ubuntu Lucid của mình vào một máy ảo, kiểm tra tập lệnh với git clone git://github.com/wavetossed/pybuild.git
và sau đó chạy tập lệnh.
Khi bạn đã xây dựng nó, hãy sử dụng tarball trên bất kỳ bản phân phối Linux nào gần đây. Có một vấn đề nhỏ khi chuyển nó sang một thư mục khác /data1/packages/python272
là bạn phải chạy phần mềm đi kèm patchelf
để đặt đường dẫn thông dịch TRƯỚC KHI bạn di chuyển thư mục. Điều này ảnh hưởng đến bất kỳ mã nhị phân nào trong/data1/packages/python272/bin
Tất cả điều này đều dựa trên việc xây dựng với RUNPATH và sao chép các thư viện được chia sẻ phụ thuộc. Mặc dù tập lệnh nằm trong một số tệp, nó thực sự là một tập lệnh shell dài được sắp xếp theo kiểu thư mục /etc/rc.d.