2015-05-26 25 views
8

python và python3 được cài đặt trong OS X Yosemite qua Homebrew, nhưng cmake thất bại trong việc tìm PythonLibs 3, chỉ 2:OS X cmake không thể tìm thấy PythonLibs 3.4


CMakeLists.txt:

set(Python_ADDITIONAL_VERSIONS 3.4) 
FIND_PACKAGE(PythonInterp REQUIRED) 
FIND_PACKAGE(PythonLibs 3.4 REQUIRED) 

get:

-- Found PythonInterp: /usr/local/bin/python3.4 (found suitable version "3.4.3", minimum required is "3.4") 
-- Found PythonLibs: /usr/lib/libpython3.4.dylib (found version "2.7.6" 

CMakeLi sts.txt:

set(Python_ADDITIONAL_VERSIONS 3.4) 
FIND_PACKAGE(PythonInterp 3.4 REQUIRED) 
FIND_PACKAGE(PythonLibs 3.4 REQUIRED) 

get:

Could NOT find PythonLibs: Found unsuitable version "2.7.6", but required 
is at least "3.4" (found PYTHON_LIBRARY-NOTFOUND) 


Sau đó, tôi thêm này để cmake danh sách:

INCLUDE_DIRECTORIES(/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/lib) 
INCLUDE_DIRECTORIES(/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/include/python3.4m) 

và thậm chí sao chép thư mục đó để /usr/lib, và sau đó got:

Could NOT find PythonLibs: Found unsuitable version "2.7.6", but required 
is at least "3.4" (found /usr/lib/libpython3.4.dylib) 

trông có vẻ lạ.

+0

cùng một vấn đề với cmake trên Windows, đặc biệt dòng này là một thông báo lỗi ngu ngốc: '(tìm thấy phiên bản phù hợp "3.4 .3 ", yêu cầu tối thiểu là" 3.4 ")' – dashesy

Trả lời

0

Có vẻ như phiên bản Python chính xác được tìm thấy trong cấu hình CMake của bạn, nhưng cũng cần phải đặt vị trí của thư viện. Tùy thuộc vào cài đặt/cấu hình của bạn vị trí của các thư viện có thể khác nhau, mặc dù trong cấu hình bạn sẽ muốn một cái gì đó tương tự:

PYTHON_LIBRARIES=/Library/Frameworks/Python.framework/Versions/3.4/lib/libpython3.4m.dylib 
PYTHON_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m 

http://www.cmake.org/cmake/help/v3.0/module/FindPythonLibs.html

+0

Nó không giống như một giải pháp phổ dụng, tuy nhiên nó hoạt động tốt. Bây giờ tôi quyết định làm điều đó bằng cách sử dụng setup3ools python3 thay vì cmake. – iskhakovt

0

Bạn cần phải thêm đường dẫn đến các thư viện trong "LD_LIBRARY_PATH của bạn "biến môi trường. Bằng cách này, CMake sẽ biết nơi để tìm kiếm chúng. Điều này có thể xảy ra với nhiều cài đặt python hoặc khi nó được cài đặt ở một vị trí không chuẩn. Điều này sẽ giải quyết nó:

export LD_LIBRARY_PATH=/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/lib:$LD_LIBRARY_PATH 

Lệnh CMake "INCLUDE_DIRECTORIES" chỉ dành cho tiêu đề (hay còn gọi là/usr/include.).

-> Nếu giải pháp của tôi không hoạt động, chắc chắn rằng bạn đã cài đặt python-devel: how to install python-devel in Mac OS?

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