সিএমকে পাইথনলিবগুলি খুঁজে পাচ্ছেন না


14

আমি আমার উবুন্টুতে ইনরিয়া গ্রাফাইট তৈরির চেষ্টা করছি যা ভার্চুয়ালবক্স সিমুলেটরে চলছে, আমি নির্দেশাবলী অনুসরণ করি এবং python-devপ্যাকেজগুলি ইনস্টল করি , তবে যখন আমি চক্র চালাচ্ছি তখনও ত্রুটি পেয়েছিল:

CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108          (message):
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
(Required is at least version "3.2")
Call Stack (most recent call first):
 /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315     (_FPHSA_FAILURE_MESSAGE)
 /usr/share/cmake-2.8/Modules/FindPythonLibs.cmake:208 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
 src/packages/OGF/gel_python3/CMakeLists.txt:11 (FIND_PACKAGE)

আমি চেক /usr/lib/এবং এটি

tintin@tintin-VirtualBox:/usr/lib$ find . -name "libpython*"
./x86_64-linux-gnu/libpython3.4m.so.1.0
./x86_64-linux-gnu/libpython2.7.so.1.0
./x86_64-linux-gnu/libpython3.4m.a
./x86_64-linux-gnu/libpython2.7.a
./x86_64-linux-gnu/libpython3.4m.so
./x86_64-linux-gnu/libpython2.7.so
./x86_64-linux-gnu/libpython2.7.so.1
./x86_64-linux-gnu/libpython3.4m.so.1

তাহলে কেন চটকে পাইথনলিবগুলি খুঁজে পাচ্ছেন না, বা আমি কীভাবে এটি মোকাবেলা করব?

উত্তর:


21

ইনস্টল করা python-devআসলে আমার জন্য এটি স্থির করে:

sudo apt-get install python-dev

এখানে ইঙ্গিতটি পেয়েছেন: https://github.com/Valloric/ YouCompleteMe/issues/ 484


2
কোনও বাহ্যিক লিঙ্কের দিকে ইঙ্গিত করার পরিবর্তে দয়া করে সেখান থেকে প্রাসঙ্গিক অংশটি অনুলিপি করুন - যাতে লিঙ্কটি যদি কোনও কারণে
— অ্যাক্সেসযোগ্য না

1
ঠিক আছে, সমাধানটি চালানোর জন্য:sudo apt-get install python-dev
— হেলগার

@ হেলগার দয়া করে আপনার উত্তরটি সম্পাদনা করুন এবং উপরের কমান্ডটি যুক্ত করুন।
— রন

3
একটি ছোট নোট: পাইথন 3 ব্যবহারের জন্য apt-get install python3-dev। python-devএবং python3-devএমন মেটাপ্যাকেজ যা নির্বাচিত পাইথনের জন্য সর্বাধিক বর্তমান দেব প্রবাহকে টান দেয়।
— rbaleksandar

এটি সব ক্ষেত্রেই সমস্যাটি সমাধান করে না, @ জোবের দেওয়া উত্তর কেন তা ব্যাখ্যা করে।
— খনিজগুলি

10

সমস্যাটি মনে হচ্ছে যে উবুন্টু 14.04 ডিফল্টরূপে পাইথন 3.4 ইনস্টল করে এবং উবুন্টু (২.৮) থেকে সিএমকে সংস্করণটি কেবল পাইথন ৩.৩ পর্যন্ত অনুসন্ধান করে। বিবৃতি set(Python_ADDITIONAL_VERSIONS 3.4)দেওয়ার আগে একটি কার্যপ্রণালী যুক্ত করা find_package। নোট করুন যে আমি এই সমস্যাটি সম্পর্কে একটি বাগ দায়ের করেছি ।

সিএমকে ৩.০, সিএমকে পাইথন ৩.৪ পর্যন্ত অনুসন্ধান করে , সুতরাং সেই সংস্করণটি ম্যানুয়ালি ইনস্টল করাও সমস্যাটি সমাধান করা উচিত।


ডাউনভোট সম্পর্কে একটি ব্যাখ্যা দেওয়া ভাল লাগবে।
— জব

3

আমার কাছে বিষয়টি একটি খারাপ ক্যাশে ছিল

rm CMakeCache.txt

পুরানো ২.7 সংস্করণ সহ ক্যাশে সরিয়েছে এবং আমার ক্ষেত্রে এটি ৩.২ খুঁজে পাওয়ার অনুমতি দিয়েছে।

আমি ব্যবহার করা cmake হয়

find_package(PythonInterp 3.2 REQUIRED)
find_package(PythonLibs 3.2 REQUIRED)
message(STATUS "PYTHON_LIBRARIES = ${PYTHON_LIBRARIES}")
message(STATUS "PYTHON_EXECUTABLE = ${PYTHON_EXECUTABLE}")
message(STATUS "PYTHON_INCLUDE_DIRS = ${PYTHON_INCLUDE_DIRS}")
...
include_directories(${PYTHON_INCLUDE_DIRS})

1

আমি সম্প্রতি উবুন্টু 14.04 64-বিটের সাথে একই রকম সমস্যা পেয়েছি; স্পষ্টতই, সিএমকে ডিফল্টরূপে আর্কিটেকচার নির্ভর ইনস্টল ফোল্ডারগুলিতে তাকাবে না:

CMake constructs a set of possible installation prefixes for the package. Under
each prefix several directories are searched for a configuration file. The tables
below show the directories searched.

[...]

  <prefix>/(lib/<arch>|lib|share)/cmake/<name>*/          (U)
  <prefix>/(lib/<arch>|lib|share)/<name>*/                (U)
  <prefix>/(lib/<arch>|lib|share)/<name>*/(cmake|CMake)/  (U)

[...]

In all cases the <name> is treated as case-insensitive and corresponds to any of
the names specified (<package> or names given by NAMES). Paths with lib/<arch>
are enabled if CMAKE_LIBRARY_ARCHITECTURE is set.

(CMake থেকে 2.8.12 অনলাইন ডকুমেন্টেশন find_package কমান্ড )

পাইথনলিবসের জন্য Find_package কল করার আগে একটি সমাধান প্রকল্পের মূল সিএমকেলিস্ট.টিএসটিএসটি ফাইলে (আপনার ক্ষেত্রে যেটি src / প্যাকেজগুলি / ওজিএফ / জেল_পিথন 3 / সিএমকেলিস্ট.টেক্সট সম্পাদনা করবে) সেট করে থাকে; এই ক্ষেত্রে:

cmake_minimum_required(VERSION 2.8)
project(project_name)

# Check the architecture and set CMAKE_LIBRARY_ARCHITECTURE accordingly
if(UNIX)
  if(CMAKE_SIZEOF_VOID_P EQUAL 8)
    set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
  endif()
endif()

find_package(PythonInterp 3.2 REQUIRED)
find_package(PythonLibs 3.2 REQUIRED)

# Rest of your file

এটা আমার ক্ষেত্রে কাজ করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.