2012-02-12 36 views
5

Tôi có thể sử dụng các mô-đun Python 2.7 từ Python 2.6 không? Hoặc làm một cái gì đó để đạt được hiệu quả tương tự?Tôi có thể sử dụng mô-đun phụ Python 2.7 từ Python 2.6 không?

Tôi bị giới hạn sử dụng Python 2.6, nhưng issue tồn tại trong mô-đun subprocess do Python 2.6 cung cấp. Điều này được sửa trong Python 2.7. Tôi rất tò mò nếu tôi sửa lỗi này bằng pip (hoặc tương đương) để tạm dừng lỗi tạm thời cho đến khi nâng cấp một ngày. Tôi sẽ đi đâu để tới đó?

+3

Lỗi là gì? Có lẽ một cách giải quyết dễ hơn là cố trộn các phiên bản Python (mà nói chung là không thể). –

+0

Không đúng là 'quy trình con' được viết hoàn toàn bằng Python. Trên Windows, cũng có một [phần viết bằng C] (http://hg.python.org/cpython/file/e0c353a43c7d/PC/_subprocess.c). –

+0

Rất tiếc. Tôi đang đề cập đến vấn đề này: http://bugs.python.org/issue9127 (câu hỏi được cập nhật). – sholsapp

Trả lời

1

Etienne Perot đã đề xuất sử dụng phương án thanh toán phụ Python 3.2 có sẵn tại http://code.google.com/p/python-subprocess32/ thay vì hack xung quanh cài đặt Python.

Điều này cho phép tôi cài đặt mô-đun vào các gói trang web ảo của tôi và vá mã phụ với http://hg.python.org/cpython/rev/767420808a62 để khắc phục lỗi được đề cập trong câu hỏi. Sau đó, import subprocess32 as subprocess đã khắc phục sự cố.

2

Có, thường là. Sự khác biệt giữa 2,6 và 2,7 không phải là rất lớn, vì 2,7 được cho là một cầu nối giữa 2,6 và 3,0. Kết quả là, hầu hết các mô-đun Python cho 2.7 sẽ làm việc trong cả hai phiên bản này (thường tốt hơn trong 2.6 so với 3.0).

Tất nhiên, cách chắc chắn duy nhất để biết câu trả lời là thử!

EDIT: Để rõ ràng, tôi không khuyên bạn nên làm điều này chút nào, nếu bạn có lựa chọn. Hacking xung quanh một cài đặt Python chỉ vì một lỗi Python trong một mô-đun là một ý tưởng tồi.

+0

Tôi đoán câu hỏi của tôi là, làm cách nào để đạt được điều này? Tôi không thông thạo trong bao bì Python như tôi muốn. – sholsapp

+0

Chỉ cần cài đặt gói giống như cách bạn làm với Python 2.7. Thông thường '/usr/bin/python2.7 setup.py install' ->' /usr/bin/python2.6 setup.py install'. Sự khác biệt duy nhất là trình thông dịch Python mà bạn gọi để cài đặt mô-đun. Một số mô-đun có thể có hướng dẫn cài đặt bổ sung, bạn sẽ phải tìm ra hoặc đăng tên mô-đun được đề cập (và nếu bạn gặp sự cố khi cài đặt, có thể phải đặt câu hỏi khác) –

+1

Nếu bạn bằng cách sử dụng 'pip' để cài đặt các gói, bạn có thể chỉ định môi trường Python để cài đặt các gói bằng cách sử dụng' --environment =/usr/bin/python2.6' hoặc '--environment =/path/to/environment'. –

1

Nếu bạn thực sự muốn ở lại trên Python 2.6, nhưng cũng muốn sửa lỗi này, tôi có thể đề xuất biên dịch Python 2.6 từ nguồn, nhưng cũng áp dụng mã sửa lỗi liên quan cho mô-đun subprocess từ 2.7.

Bạn sẽ kết thúc với một bản dựng tùy chỉnh của Python 2.6. Tất nhiên, nếu bạn đang mắc kẹt trên tiêu chuẩn 2.6 vì bạn không thể cài đặt bất kỳ phiên bản khác, thì điều này sẽ không hữu ích.

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