2011-01-20 6 views
5

मैं MySQL-Python स्थापित करने के लिए easy_install का उपयोग करने का प्रयास कर रहा हूं। यह लगभग तुरंत विफल रहता है:पायथन easy_install: निर्देशिका आवास आवश्यक फाइल निर्दिष्ट करें

_mysql.c:36:23: error: my_config.h: No such file or directory
_mysql.c:38:19: error: mysql.h: No such file or directory
_mysql.c:39:26: error: mysqld_error.h: No such file or directory
_mysql.c:40:20: error: errmsg.h: No such file or directory

यह हेडर नहीं ढूंढ सकता है। मेरे पास हेडर इंस्टॉल हैं, वे बस स्रोत/ऑप्ट में स्रोत से स्थापित हैं। यह स्पष्ट रूप से वहां नहीं देख रहा है। मैं इसे कैसे देख सकता हूं? उदाहरण के लिए, यदि यह कॉन्फ़िगर किया गया था, तो मैं "--with-mysql =/opt/mysql" जैसे कुछ कर सकता था। ऐसा नहीं लगता है कि easy_install के साथ ऐसा विकल्प है। अभी भी शोध कर रहा है तो अगर मुझे अपना जवाब मिल जाए तो मैं इसे यहां पोस्ट करूंगा।

उत्तर

5

यह एक आसान_install issu से अधिक संकलक खोज पथ के साथ एक समस्या की तरह दिखता है।

easy_install कॉल काम करने से पहले पथ पर्यावरण चर शामिल करना।

C_INCLUDE_PATH=/path/to/your/mysql/include/files easy_install intall MySQL-python 

यदि वह काम नहीं करता है, INCLUDE_PATH या CPLUS_INCLUDE_PATH चर सेट करके देखें। प्रश्न में पर्याप्त easy_install आउटपुट नहीं था यह बताने के लिए कि कंपाइलर का उपयोग किया जा रहा है।

+0

मुझे आश्चर्य है कि क्यों आसान_install/pip मेरे INCLUDE_PATH env var का सम्मान नहीं करता है। पोस्ट के लिए धन्यवाद। –

+0

यह समाधान मेरे लिए काम नहीं किया था। इसके बजाय मैं pkg-config स्थापित करके त्रुटि को प्राप्त करने में सक्षम था (sudo apt-get pkg-config स्थापित करें) – taranaki

3

easy_installsetup.py को आमंत्रित करता है, जो setup.cfg फ़ाइल को उस वितरण में फ़ाइल का सम्मान करेगा जो इसे इंस्टॉल करने का प्रयास कर रहा है। यद्यपि आप setup.py विकल्प --include_dirs और --library_dirs को सीधे easy_install पर निर्दिष्ट नहीं कर सकते हैं, तो आप उन्हें setup.cfg फ़ाइल में डाल सकते हैं।

मेरे पास pysqlite के साथ एक ही समस्या है: मैंने SQLite को एक गैर-मानक स्थान में रखा है, और पाइथन बाइंडिंग प्राप्त करने के लिए easy_install का उपयोग करना चाहता था। Pysqlite वितरण में setup.cfg फ़ाइल शामिल है जिसमें नमूना include_dirs और library_dirs निर्देश हैं, इसलिए यह स्पष्ट था कि क्या करना है।

MySQL-अजगर एक setup.cfg फ़ाइल है, तो आप जोड़ना/संपादित इसे शामिल करने की कोशिश कर सकते:

[build_ext] 
include_dirs = /path/to/headers 
library_dirs = /path/to/libs 

यदि पहले से ही है setup.cfg फ़ाइल में एक [build_ext] अनुभाग, बजाय इसे करने के लिए जोड़ एक दूसरा निर्माण

संबंधित मुद्दे