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


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-devpython-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.