2009-03-02 34 views
8

Tôi đã mua một chiếc MacBook cấp thấp khoảng một tháng trước và cuối cùng tôi cũng đang tìm cách cấu hình nó cho Python. Tôi đã thực hiện hầu hết công việc Python của mình trong Windows cho đến bây giờ, và tôi đang tìm kiếm các lựa chọn cho OS X một chút khó khăn. Dường như có ít nhất năm tùy chọn để sử dụng cho phát triển Python:Khuyến nghị cho việc phát triển Python trên máy Mac?

  • "Cổ" Apple Python
  • MacPython
  • Fink
  • MacPorts
  • roll-bạn-của-từ nguồn

Tôi vẫn đang phát triển chủ yếu cho 2.5, do đó, chứng khoán Python là tốt từ quan điểm chức năng. Điều tôi muốn biết là: tại sao tôi nên chọn cái kia?

Cập nhật: Để làm rõ, tôi đang tìm kiếm một cuộc thảo luận về các tùy chọn khác nhau, không liên kết đến tài liệu. Tôi đã đánh dấu điều này là câu hỏi về Wiki Cộng đồng, vì tôi không cảm thấy có câu trả lời "đúng". Nhờ tất cả những người đã nhận xét về sự thấu hiểu của họ.

+0

Bạn đang tìm kiếm loại thảo luận nào? Vui lòng làm rõ câu hỏi của bạn. Có vấn đề gì với tài liệu tại http://wiki.python.org/moin/MacPython/Leopard? Bạn muốn biết điều gì không có trong tài liệu này? –

+1

Trang bạn đã liên kết có một tùy chọn: thêm IDLE từ MacPython vào tập lệnh Python cổ phiếu của Apple. Tôi muốn thấy nhiều ưu/khuyết điểm của các bản phân phối khác nhau, bao gồm trải nghiệm cá nhân và lý do tại sao người dùng SO chọn một phân phối cụ thể. – technomalogical

+1

Tôi nghĩ bạn có ý định liên kết tới http://wiki.python.org/moin/MacPython/PythonDistributionsForMac, nhưng trang đó rất ngắn và cung cấp nhiều cụm từ mơ hồ như "quá phức tạp" và "quá nhiều ... gói" . Ngoài ra, trang không liệt kê nhiều ưu điểm cho các lựa chọn thay thế. Tôi tự hỏi nếu có bất kỳ. – technomalogical

Trả lời

2

Tôi khuyên bạn nên sử dụng môi trường ảo Python, đặc biệt nếu bạn sử dụng Timecapsule vì Timecapsule sẽ sao lưu mọi thứ, ngoại trừ các mô-đun bạn đã thêm vào Python!

+0

Tôi thích phát triển trong môi trường ảo. Giúp dễ dàng thêm các gói có thể ảnh hưởng đến người khác. Làm sạch hệ thống cơ sở. –

+0

Tôi đồng ý với điều này. như python vận chuyển cũng tàu với một số thư viện addon đã có thể đụng độ với các phiên bản mới hơn bạn cần (tôi đã có điều này với zope.interface). virtualenv và cài đặt python của riêng bạn ngăn chặn điều này. – MrTopf

9

Một lợi thế mà tôi thấy khi sử dụng Python "cổ phiếu" được bao gồm trong Mac OS X là nó giúp triển khai cho các máy Mac khác một miếng bánh. Tôi không biết kịch bản triển khai của bạn là gì, nhưng đối với tôi điều này là quan trọng. Mã của tôi phải chạy trên bất kỳ số lượng máy Mac nào tại nơi làm việc và tôi cố gắng giảm thiểu số lượng công việc cần thiết để chạy mã của tôi trên tất cả các hệ thống đó.

+0

Tránh nháy mắt - nó cài đặt một số nội dung bổ sung mà bạn có thể không hài lòng. Sử dụng điều này: http://wiki.python.org/moin/MacPython/Leopard –

+1

giả sử bạn có thể chịu đựng được python của bạn bị phá vỡ như nhau (tôi đã chỉ ra ba ví dụ ở đây trên SO trong hai ngày qua mà mọi người đã gặp phải trong thế giới thực) và _old_ trên tất cả các máy Mac, đây là một điểm hợp lệ. – popcnt

+0

Như tôi đã nói, tất cả phụ thuộc vào yêu cầu triển khai của bạn. Tôi không thể mong đợi tất cả các máy ở đây sẽ được cập nhật lên Python 2.6 hoặc một số cấu hình khác không phải là tiêu chuẩn. Nhưng đó chỉ là tôi trong dự án này. –

0

Tôi khuyên bạn nên dùng python (bất kỳ con trăn nào?) Cộng với vỏ ipython. Kinh nghiệm gần đây nhất của tôi với MacPython là MacPython 2.5, và tôi thấy IDLE bực bội để sử dụng như một trình soạn thảo. Nó không phải là rất có tính năng, và nó 'rất chậm để cuộn số lượng lớn đầu ra.

3

Phụ thuộc vào những gì bạn đang sử dụng python. Nếu bạn đang sử dụng MacOS funitionality và những thứ như PyObjC bạn có lẽ là tốt nhất của với MacPython hoặc python được cung cấp bởi Apple.

Tôi sử dụng Python trên máy Mac chủ yếu để phát triển các ứng dụng phía máy chủ mà sau này sẽ chạy trên các hộp Linux FreeBSD &. Cho rằng tôi đã sử dụng python fink cho một vài năm và kể từ MacPorts python. Với các cổng mac, thật đơn giản để thêm các mô-đun c yêu cầu (như trình điều khiển cơ sở dữ liệu, v.v.). Nó cũng dễ dàng để giữ hai phiên bản python (2,5 & 2,6 trong trường hợp của tôi) xung quanh.

Tôi đã sử dụng "biên dịch" của riêng bạn "python để kiểm tra trăn trước 3.0 nhưng nhìn chung tôi thấy việc quản lý phụ thuộc vào c modules painfull nếu được thực hiện bằng tay.

Nhờ easy_install cài đặt các mô-đun python tinh khiết nhanh chóng và dễ dàng cho tất cả các tùy chọn được đề cập ở trên.

Tôi chưa bao giờ là một người IDE. Đối với phát triển tôi sử dụng dòng lệnh subversion cài đặt bởi MacPorts, Textmate và occasionaly Expandrive làm trực tiếp truy cập các tập tin trên máy chủ. Cá nhân tôi rất phụ thuộc vào Bicyclerepairman for Textmade để xử lý nhu cầu tái cấu trúc của tôi.

Những người khác có vẻ rất hài lòng với Eclipse & Pydev.

4

Tôi rất muốn khuyên bạn sử dụng MacPorts với Porticus để quản lý cài đặt Python của bạn. Phải mất một thời gian để xây dựng mọi thứ, nhưng lợi thế là bất cứ thứ gì bạn xây dựng sẽ được xây dựng dựa trên cùng một thư viện, vì vậy bạn sẽ không phải lo ngại về các đối tượng được chia sẻ liên kết tĩnh, v.v. nếu bạn muốn công cụ Python của bạn hoạt động với Apache, PostgreSQL, v.v.

Nếu bạn chọn cách này, hãy nhớ cài đặt cổng python_select và sử dụng nó để làm cho hệ thống của bạn sử dụng Python được cài đặt từ MacPorts.

Là một tiền thưởng thêm, MacPorts có gói cho hầu hết trứng Python chính-stream, vì vậy nếu bạn sẽ có thể có MacPorts giữ cho bạn cập nhật lên với phiên bản mới nhất của tất cả các công cụ mà :)

+0

+1 Tôi thứ hai porticus và macports – popcnt

+0

Cộng với lợi thế của việc cài đặt PIL thực sự dễ dàng (chỉ có tôi tìm được việc làm). – zgoda

+0

(Đây là một câu hỏi cũ, bit tôi đang đặt hai xu của tôi ở đây anyways). Tôi sẽ khuyên bạn nên ** chống lại ** bằng cách sử dụng macports cho python trên một mac, trừ khi bạn không làm bất kỳ công cụ GUI với python, hoặc sử dụng bất kỳ thư viện bất thường. –

1

Trong môi trường cửa sổ của tôi, tôi sử dụng Eclipse và PyDev, hoạt động khá tốt với nhau, ngay cả khi nó hơi thưa thớt. Rõ ràng chính xác môi trường tương tự cũng có sẵn cho Mac, vì vậy tôi khuyên bạn nên tải xuống Eclipse và sử dụng chức năng phần mềm cập nhật nội bộ để cập nhật PyDev bằng URL http://pydev.sourceforge.net/updates/. Để tìm hiểu thêm về PyDev, hãy xem here.

1

Con trăn cung cấp của Apple khá cũ - cài đặt con hổ của tôi có 2.3.5. Điều này có thể không phải là một vấn đề cho bạn, nhưng bạn sẽ bỏ lỡ rất nhiều. Ngoài ra, có một nguy cơ mà Apple sẽ cập nhật nó. Tôi không chắc chắn nếu di chuyển từ 2.3.5 đến (nói) 2.4 sẽ gây ra mã để phá vỡ, nhưng tôi đoán nó có thể. Điều này xảy ra với những người perl gần đây: http://developers.slashdot.org/article.pl?sid=09/02/18/1435227

Macpython là một công cụ xây dựng khung (như Apple, tôi tin). Thành thật mà nói, tôi không chắc chắn chính xác những gì có nghĩa là, nhưng đó là một điều kiện tiên quyết cho một số mô-đun, đặc biệt là wxPython. Nếu bạn nhận được python từ macports hoặc fink, bạn sẽ không thể chạy wxPython (trừ khi bạn chạy nó thông qua X11).

+0

Điểm tốt về wxPython, điều mà tôi chưa xem xét. Apple đã cải thiện hỗ trợ Python của họ gần đây, với 2.5.2 được cài đặt trong Leopard, nhưng vấn đề Perl cũng là một điểm tốt để nâng cao. – technomalogical

2

Dựa trên số lượng lỗi và thiếu sót mà mọi người gặp phải trong trăn báo (chỉ ở đây trên SO!), Tôi không thể đề xuất phiên bản đó. ví dụ, xem:

tôi sẽ chọn MacPorts.

Nó không loại bỏ python hiện có của bạn do Apple cài đặt theo mặc định trong /opt/local/bin (chơi đẹp với nó) và cộng với việc tải xuống và cài đặt thêm mô-đun python bổ sung (ngay cả mô-đun nhị phân mà bạn cần biên dịch!) . Tôi sử dụng giao diện GUI Porticus để duy trì danh sách gói cài đặt MacPort của tôi, bao gồm cả python.

3

Làm thế nào về EPD từ Enthought? Có, nó lớn nhưng nó là một khung công tác xây dựng và bao gồm những thứ như wxPython, vtk, numpy, scipy và ipython được tích hợp sẵn.

1

Và hãy đoán xem điều gì đã bị lãng quên bởi mọi câu trả lời ở đây ... ActivePython.

Không yêu cầu biên dịch, ngay cả đối với mô-đun bên thứ ba như numpy, lxml, pyqtthousands of others.

ActivePython Community Edition logo

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