2012-05-06 25 views
9

Dưới đây là những gì tôi đã làm như vậy cho đến nay: HomebrewLàm thế nào để sử dụng Homebrew để cài đặt các thư viện Python như Py2Cairo

Tôi đã cài đặt:

/usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)" 

Sau đó python: brew install python

Sau đó py2cairo : brew install py2cairo

cả hai cách này dường như cài đặt đúng và khi tôi nhập which python Tôi nhận được: usr/local/bin/python mà tôi tin là phiên bản của homebrew.

tôi đã chỉnh sửa con đường của tôi như nhiều hướng dẫn Homebrew đã khuyên:

export PATH=/usr/local/bin:/usr/local/share/python:$PATH 

Đây là những gì tôi nhận được từ echo $PATH: /usr/local/bin:/usr/local/share/python:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Tôi cũng có thể gõ python --version và nhận python 2.7.3 mà có vẻ đúng bởi vì nếu tôi nhìn vào số /usr/local/Cellar/py2cairo/1.10.0/README nó nói:

Dependencies 
------------ 
    cairo >= 1.10.0 
    Python >= 2.6 

Tuy nhiên sau tất cả điều này tôi vẫn không thể nhập thư viện py2cairo vào python. Đây là những gì tôi nhận được khi tôi cố gắng:

Sal:~ Lockyer$ python 
Python 2.7.3 (default, May 6 2012, 13:47:31) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cairo 
Fatal Python error: Interpreter not initialized (version mismatch?) 
Abort trap: 6 

Tôi nghĩ rằng hầu hết mọi người sử dụng pip hoặc easy_install cho loại điều, nhưng tôi không nghĩ rằng py2cairo được hỗ trợ bởi những. Dưới đây là những gì tôi nhận được khi tôi chạy pip-2.7 install py2cairo:

Downloading/unpacking py2cairo 
    Could not find any downloads that satisfy the requirement py2cairo 
No distributions at all found for py2cairo 
Storing complete log in /Users/Lockyer/Library/Logs/pip.log 

Tôi nghĩ rằng tôi chỉ phải thiếu một bước cuối cùng nơi tôi bằng cách nào đó tiết lộ cho python nơi để nhập thư viện từ ... Tôi quên để thêm một cái gì đó để con đường của tôi ?

Dưới đây là những gì tôi nhận được khi tôi chạy ls -l /usr/local/bin/python

lrwxr-xr-x 1 Lockyer admin 33 6 May 13:48 /usr/local/bin/python -> ../Cellar/python/2.7.3/bin/python 

Dưới đây là những gì tôi nhận được khi tôi chạy otool -L /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so:

/usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so: 
    /private/tmp/homebrew-py2cairo-1.10.0-BtmY/py2cairo-1.10.0/build_directory/src/_cairo.so (compatibility version 0.0.0, current version 0.0.0) 
    /usr/local/Cellar/cairo/1.10.2/lib/libcairo.2.dylib (compatibility version 11003.0.0, current version 11003.2.0) 
    /System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.1) 
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1094.0.0) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0) 

Moving /System/Library/Frameworks/Python.framework/Versions máy tính để bàn của tôi, và chạy brew install py2cairo một lần nữa dường như đã cố định lỗi. Nó sẽ được tốt đẹp để biết lý do tại sao nó được xây dựng chống lại python Lion mặc dù bởi vì nó không có vẻ là đầu tiên trên con đường ...

+0

Nếu bạn đã cài đặt một con trăn trước đó, nó vẫn có thể là con trăn đó. Đăng kết quả của ls -l/usr/local/bin/python – jdi

+0

Tôi đã chỉnh sửa câu hỏi với kết quả của mình, trông giống như những gì bạn có thể mong đợi với tôi? Nhưng tôi có thể thiếu một cái gì đó ... – Lockyer

+0

Yea trông có vẻ đúng. Tôi nghĩ @Dougal có lẽ là vấn đề của bạn, cho thấy rằng bản thân cairo có thể không được xây dựng đúng cách. Bạn đang thiếu phần mở rộng C cơ bản – jdi

Trả lời

6

Tôi tình cờ gặp lỗi này. Thông qua một số googling, tôi phát hiện ra rằng this issue đã được phát hiện trên trang sự cố cho project on GitHub.

Điều này có vẻ là vấn đề về cách waf xử lý việc nhập thư viện mà tôi không hiểu đầy đủ. Bản sửa lỗi đã được gửi và đang chờ phê duyệt.

Nếu ai đó vẫn gặp sự cố này trước khi họ chấp nhận sửa chữa, có thể cài đặt công thức cố định cho py2cairo theo các lệnh được đề xuất trên this answer.

brew rm -f py2cairo 
brew install https://raw.githubusercontent.com/2bits/homebrew/15b3e67/Library/Formula/py2cairo.rb 

Khi khắc phục được chấp thuận, đơn giản brew update sẽ khắc phục được sự cố.

+2

FYI, nó được sửa trong Homebrew mới nhất. 'brew update' và' brew rm -f py2cairo && brew install py2cairo' làm việc cho tôi. Cảm ơn tất cả những người đã điều tra vấn đề này. Y'all đã tiết kiệm cho tôi nhiều giờ rắc rối. –

+3

a4e87cd đã biến mất, hãy thử cài đặt brew https://github.com/2bits/homebrew/raw/15b3e67/Library/Formula/py2cairo.rb –

+0

404. sử dụng ^^^ https://github.com/2bits/homebrew/ raw/15b3e67/Library/Formula/py2cairo.rb – circuitry

3

Có vẻ như pycairo's waf cài đặt tập tin là tìm sai python khi cài đặt. Bạn có thể chạy

otool -L /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so 

để xác định nhánh mở rộng C nào được liên kết với? Tôi bao gồm một dòng như

/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.1) 

(nhưng tôi sử dụng con trăn hệ thống, không phải homebrew python).

+0

Xin lỗi tôi đã thử trước đó, và nó đã thất bại. Tôi chỉ làm hỏng nó khi tôi viết bài cho câu hỏi này. Chỉ cần thử lại lần nữa và chỉnh sửa câu hỏi của tôi với kết quả. – Lockyer

+0

Aha, vấn đề khác. Hãy thử tìm trong '/ usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/cairo /' và '/ usr/local/Cellar/py2cairo' cho một tệp có tên' _cairo.so' , là phần mở rộng C mà py2cairo sử dụng. Nó có thể là một vấn đề đường dẫn trong việc tìm kiếm, hoặc nó có thể không được xây dựng đúng cách. – Dougal

+0

Có '_cairo.so' tại:'/usr/local/Cellar/py2cairo/1.10.0/lib/python2.6/site-packages/cairo', nhưng không có gì ngoại trừ: '__init __. Pyc' at:'/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/cairo' – Lockyer

4

Theo nhận xét khác của bạn, bạn đã quản lý để khắc phục sự cố đường dẫn thư viện của mình, nhưng bạn bị bỏ sót với "Lỗi Python nghiêm trọng: Phiên dịch không được khởi tạo (phiên bản không khớp?)".Đây là cách giải quyết nó.

  1. Hãy chắc chắn rằng bạn có xcode 4.3
  2. Hãy chắc chắn rằng bạn có lệnh xcode công cụ dòng cài đặt
  3. brew tap homebrew/dupes && brew install homebrew/dupes/apple-gcc42
  4. sudo ln -s /usr/local/bin/gcc-4.2 /usr/bin/gcc-4.2
  5. Xác nhận tất cả điều này với brew --config (nên báo cáo GCC-4.2 nằm)
  6. brew uninstall cairo py2cairo
  7. brew install py2cairo --use-gcc

Tôi đã gặp vấn đề này, cho đến khi tôi xây dựng nó với gcc, dường như không được bao gồm trong xcode 4.3 nữa.

Ngoài ra, tôi không sử dụng cài đặt python homebrew (nếu bạn đã làm điều đó). Tôi đang sử dụng cài đặt python táo chuẩn và chỉ có /usr/local/lib/python2.7/site-packages ở phía trước PYTHONPATH của tôi

+0

hmm, vâng thêm '/ usr/local/lib/python2.7/site-packages' vào' PATH' của tôi và sử dụng cài đặt python mặc định có thể sẽ hoạt động tốt hơn. Nó có thể ít sketchy sau đó di chuyển các tập tin thư viện xung quanh quá ... Tôi đã không cần phải cài đặt gcc thông qua Homebrew mặc dù. – Lockyer

+0

@Lockyer: Tôi đã nhận được sự cố trong mọi kết hợp, cho đến khi tôi cuối cùng cài đặt và liên kết GCC với đúng chỗ và homebrew thừa nhận nó, và tôi đã sử dụng cờ '--use-gcc' – jdi

+0

@Rodrigo: thats not a fully complete lỗi. Chỉ lệnh của nó thất bại. Bạn đã cài đặt gcc, phải không? – jdi