2009-08-02 35 views
21

Tôi hiện đang cài đặt nhiều phiên bản Python trên máy Mac, phiên bản mới nhất của tôi, python.org, phiên bản cũ hơn được sử dụng để chạy Zope cục bộ và phiên bản khác phiên bản mà Appengine đang sử dụng. Đó là một mớ hỗn độn. Bất kỳ khuyến nghị sử dụng một phiên bản của python để cai trị tất cả? Làm thế nào tôi sẽ đi về các phiên bản cũ đã bị xóa và liên kết tất cả các ứng dụng của tôi với một lần cài đặt. Bất kỳ gotchas cụ thể Mac tôi nên biết về? Đây có phải là một ý tưởng ngu ngốc?Nhiều phiên bản Python trên OS X Leopard

+0

Đọc bài đăng trên blog này: http://farmdev.com/thoughts/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/ –

Trả lời

20

Chẳng có gì sai khi có nhiều phiên bản Python xung quanh. Đôi khi nó là một điều cần thiết khi sử dụng các ứng dụng với phụ thuộc phiên bản. Có lẽ vấn đề lớn nhất là xử lý các phụ thuộc gói trang web có thể thay đổi từ ứng dụng đến ứng dụng. Các công cụ như virtualenv có thể trợ giúp ở đó. Một điều bạn nên không làm là cố gắng loại bỏ Python do Apple cung cấp trong/System/Library/Frameworks và liên kết đến từ/usr/bin/python. (Lưu ý các cuộc thảo luận gần đây của nhiều phiên bản here.)

+1

+1 trên virtualenv. Tôi đã liên kết với trang chủ virtualenv. –

1

Cách tiếp cận tôi thích mà nên làm việc trên tất cả các hệ điều hành UNIX-like:

Tạo cho mỗi ứng dụng mà cần một phiên bản python cụ thể một tài khoản người dùng. Cài đặt trong mỗi người dùng đếm phiên bản python tương ứng với một tiền tố người dùng cục bộ (như ~/build/python) và thêm ~/build/bin/vào biến môi trường PATH của người dùng. Cài đặt/sử dụng các ứng dụng python của bạn trong người dùng chính xác của họ.

Ưu điểm của phương pháp này là cách ly hoàn hảo giữa các cài đặt python riêng lẻ và lựa chọn tương đối thuận tiện môi trường python chính xác (chỉ su cho người dùng thích hợp). Ngoài ra hệ điều hành vẫn không bị ảnh hưởng.

9

Ian Bicking virtualenv cho phép tôi có Pythons riêng biệt cho mỗi ứng dụng tôi xây dựng và cho phép tôi quyết định có bao gồm các gói trang web toàn cục trong môi trường Python bị cô lập hay không.

Tôi đã không thử nó với Zope, nhưng tôi đoán rằng những điều sau đây nên làm việc độc đáo:

  1. Sử dụng Python của Zope của bạn, hãy virtualenv mới, có hoặc không có --no-site -packages
  2. Thả Zope của bạn vào virtualenv
  3. Activate môi trường với $ VENV/bin/kích hoạt
  4. Cài đặt bất kỳ cần thiết site-packages
  5. Chạy Zope của bạn bằng cách sử dụng Python tại $ VENV/bin/python

Điều này đã làm việc tuyệt vời để quản lý các dự án Django với các phiên bản khác nhau của Python, Django và tiện ích bổ sung.

This article dường như đi vào chi tiết hơn về các chi tiết cụ thể của Grok và Virtualenv, nhưng các tính tổng quát nên áp dụng cho Zope as welll.

2

+1 cho virtualenv.

Thậm chí nếu bạn không cần các phiên bản Python khác nhau, vẫn còn tốt để giữ cho các phụ thuộc phát triển của bạn tách biệt với hệ thống Python của bạn.

Tôi không chắc chắn bạn đang sử dụng hệ điều hành nào, nhưng tôi thấy hướng dẫn these rất hữu ích để nhận môi trường phát triển python chạy trên OSX.

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