2013-07-20 25 views
13

Tôi thích sử dụng Python với các gói gọn gàng, scipy và một số gói khác. Tôi là người mới bắt đầu Python tuyệt đối và có một số vấn đề với việc cài đặt trong Mac OS X.Cài đặt Python trong môi trường ảo Mac OS X bao gồm một khuôn khổ mà tôi có thể đưa vào Xcode?

Tôi đang làm theo hai hướng dẫn sau để cài đặt python: 12.

Ở đây, HomeBrew được sử dụng để cài đặt Python (với pip) và virtualenv. Tôi không có ý kiến ​​về những gì tốt hơn, MacPorts, HomeBrew, Fink ... Tôi chỉ tìm thấy niềm tin đầy cảm hứng hướng dẫn này.

Nếu tôi hiểu chính xác, hệ điều hành OS X Python, mà tôi không bao giờ nên chạm vào, nằm trong /System/Library/Frameworks/Python.Framework. Và tôi không thể sử dụng cái này trong Xcode vì nó không có các gói mong muốn của tôi. HomeBrew Python sẽ được cài đặt ở đâu đó trong/usr/local /. Tôi đã tìm thấy một khuôn khổ ở đó nhưng vì khung hệ thống không có các gói bổ sung. Hướng dẫn này giải thích rằng có thể tốt hơn là cài đặt các gói bổ sung trong môi trường ảo chỉ được thực hiện thông qua pip. Nhưng tôi không thể tìm thấy một khuôn khổ ở đó.

Vì vậy, câu hỏi của tôi là: Làm thế nào tôi có thể cài đặt Python trong môi trường ảo bao gồm một khuôn khổ mà tôi có thể đưa vào Xcode?

Trả lời

34
  1. Apple Python là chức năng và thư mục site-packages bình thường là /Library/Python/2.7/site-packages (và không /System/Library/Frameworks/Python.framework/Versions/2.7/ lib/python2.7/site-packages). Bạn có thể sử dụng nó mà không có vấn đề gì.
  2. Tôi chưa từng gặp vấn đề gì khi cài đặt tất cả các mô-đun (numpy, scipy, matplotlib, pandas, shapely, ...) mà tôi muốn làm khung công tác, hoặc với pip hoặc easy_install, bao gồm virtualenv (chỉ cần cài đặt chúng theo cách thông thường trong Python) hoặc tạo môi trường ảo.
  3. khi bạn cài đặt mô-đun khung, Nó được đặt trong thư mục gói trang web thông thường.
  4. vấn đề chỉ có thể là "cũ" Python phiên bản (không phải là một vấn đề đối với tôi, sử dụng 2.6.x, 2.7.x và các phiên bản 3.3.x)

Nhưng nếu bạn muốn, bạn có thể cài đặt khác phiên bản của Python (trong 64-bit, không phải 32!):

a) cách theo quy định của Apple: như một khuôn khổ

  • các phiên bản chính thức của Python.org được cài đặt trong /Thư viện /Frameworks/Python.framework với thư mục gói trang web trong /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  • tương tự cho phiên bản khoa học Enthought của Python (phân phối khoa học với nhiều mô-đun được cài đặt sẵn, numPy, scipy, matplotlib, ...),
  • (bạn cũng có thể cài đặt phiên bản Homebrew Python như một khuôn khổ, xem dưới đây)

bạn phải thay đổi PATH của Python thực thi trong /usr/bin (thông thường, điều này được thực hiện tự động bởi phân phối theo liên kết tượng trưng hoặc trong /Users/me/.bash_profile tệp).

Các module được cài đặt trong /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages không ảnh hưởng đến những cài đặt trong /Library/Python/2.7/site-packages nếu bạn sử dụng Python thực thi thích hợp và ngược lại.

b) hệ thống quản lý gói cách

  • MacPorts cài đặt phiên bản riêng của mình Python trong thư mục /opt/;

    cổng sudo -v cài đặt python27

  • Fink cài đặt phiên bản riêng của mình Python trong thư mục /sw/;

    Fink cài đặt Python27

  • Homebrew cài đặt Python trong /usr/local/Cellar với symlink trong /usr/local/bin.

    brew cài đặt python
    hoặc
    brew cài đặt python --framework

  • Để sử dụng chúng, bạn phải thêm /sw/bin,/sw/lib/hoặc/opt/bin,/opt/lib/ vào PATH và thay đổi PATH của Python thực thi

  • Đối với tôi, vấn đề chính với Fink và MacPorts là chúng không tính đến những gì đã được cài đặt và cài đặt tất cả trong các thư mục tương ứng. vấn đề thực sự trong việc quản lý đường dẫn thư viện.
  • Giải pháp Homebrew là "sạch" (trong /usr/local) và được dựa trên các thư viện hiện tại nếu họ có được cập nhật, nếu không nó sẽ cài đặt các phiên bản riêng của thư viện

c) các "tự trị" cách

  • giải pháp hoàn hảo là Anaconda (khác phân phối khoa học với nhiều mô-đun cài đặt sẵn,),
      .210
    • Cài đặt sạch vào một thư mục duy nhất (nơi bạn muốn như /Users/me/Anaconda)
    • không đòi hỏi quyền root
    • không ảnh hưởng đến Python khác cài đặt trên hệ thống của bạn, hoặc gây trở ngại với OS X Khung
    • chuyển sang/từ Anaconda chỉ bằng cách đặt $ PATH hoặc tạo bí danh trong /Người dùng/tôi /.bash_profile
      • alias Anaconda = '/ Users/me/Anaconda/bin/python'
      • alias anaconda3 = '/ Users/me/Anaconda/envs/py33/bin/python3'
    • bạn có thể cài đặt phiên bản Python từ 2.6.x đến 3.3.x
    • sáng tạo gói và môi trường quản lý cho Python, tên conda, nhưng bạn có thể sử dụng pip hoặc easy_install mà không vấn đề
    • đối với tôi bây giờ, nó là giải pháp tốt nhất để ins môi trường ảo cao (như /Users/me/Anaconda/envs/py33)

d) "cứng" cách

  • bạn có thể biên dịch phiên bản của riêng bạn của Python dưới dạng cổ điển (kết quả trong/usr /) hoặc như một khuôn khổ. Phải mất thời gian nhưng không khó.

Vì vậy, câu hỏi của bạn:

Làm thế nào tôi có thể nhận được một cài đặt Python trong một môi trường ảo trong đó bao gồm một khuôn khổ mà tôi có thể bao gồm vào Xcode?

Trừ khi bạn là một chuyên gia về Unix (quản lý đường dẫn), bạn phải sử dụng giải pháp đề nghị của Apple, một bản phân phối khung (bao gồm cả Apple Python)

+0

Cám ơn nỗ lực của bạn. Tôi đã cài đặt mọi thứ phù hợp thông qua HomeBrew theo các bước được cung cấp trong hai liên kết trong câu hỏi của tôi. Sử dụng [các bước này] (http://stackoverflow.com/questions/5276967/python-in-xcode-4) Tôi có thể biên dịch các tập lệnh Python với tất cả các gói mà tôi đã cài đặt trong môi trường ảo của mình. Không có lỗi. Nhưng hãy xem xét tôi thích làm một cái gì đó như mô tả [ở đây] (http://streylab.com/blog/2012/11/22/matplotlib-running-in-cocoa-under-xcode.html). Tôi sẽ cần phải nhập khẩu một khuôn khổ để Xcode và tôi không thể tìm thấy một trong môi trường ảo của tôi. Tôi không hiểu từ bài viết của bạn nếu có? – DaPhil

+0

Tôi không bao giờ sử dụng giải pháp này. Tôi sử dụng Python từ thiết bị đầu cuối mà không có vấn đề. Để tạo một môi trường ảo, tôi sử dụng lệnh Python virtualenv project của bạn – gene

+0

Câu trả lời hay. Đánh dấu trang này. –

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