2011-09-08 41 views
12

Cuối cùng tôi đã bắt đầu sử dụng python 3 cùng với python 2.7 trên Linux.

Tôi thiết lập vỏ trăn bằng cách sử dụng tập lệnh khởi động được xác định bởi $ PYTHONSTARTUP. Do không tương thích, tôi không thể sử dụng cùng một tập lệnh cho cả hai phiên bản.

Cách dễ nhất để lấy một tập lệnh cho python 2.7 và cách khác cho python 3.2 là gì?

Trả lời

13

Nếu bạn sử dụng Python 2 cho một số dự án và Python 3 cho người khác, sau đó thay đổi biến môi trường khi bạn thay đổi dự án.

Hoặc, có kịch bản nhìn khởi động của bạn như thế này:

import sys 
if sys.version_info[0] == 2: 
    import startup2 
else: 
    import startup3 

và chia mã khởi động thực sự của bạn vào startup2.pystartup3.py

+0

Tôi đã chọn tùy chọn khởi động tập lệnh và đã viết một cái gì đó tương tự như mã của bạn. Tôi đã chọn câu trả lời này bởi vì nó là người đầu tiên đề xuất giải pháp này. – mirk

+1

'AttributeError: đối tượng 'module' không có thuộc tính 'versioninfo''. Nó được cho là 'version_info'. – 2rs2ts

7

Đặt $ PYTHONSTARTUP của bạn để trỏ đến một kịch bản như thế này, mà kiểm tra phiên bản của Python đang được sử dụng và sau đó ủy quyền cho một tập lệnh khởi động khác:

import sys 
if sys.version_info[0]==2: 
    from startup2k import * 
elif sys.version_info[0]==3: 
    from startup3k import * 
else: 
    # logging.warn('Unsupported version of Python') 
    pass 
1

Xác định bí danh cho một trong các p phiên bản ython. Trong bí danh, đặt lại PYTHONSTARTUP là thích hợp cho phiên bản python đó:

alias py3='PYTHONSTARTUP=/path/to/startup.py /other/path/to/python3.2'