"لا يمكن فتح ملف ملف: 'config-win.h': لا يوجد مثل هذا الملف أو الدليل"

StackOverflow https://stackoverflow.com/questions/1972259

سؤال

أحاول تثبيت MySQL-Python في VirtualEnv باستخدام PIP على Windows. في البداية ، كنت أتلقى نفس الخطأ ذكرت هنا, ، لكن الإجابة هناك عملت بالنسبة لي أيضًا. الآن أحصل على هذا الخطأ التالي:

_mysql.c(34) : Fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory

إذا كنت symlink (Win7) إلى حزم موقع Python العادية (وليس الافتراضية)

Error loading MySQLdb module: No module named _mysql

أنا بدلاً من ذلك في حيرة هنا. أي مؤشرات؟

هل كانت مفيدة؟

المحلول

تحديث لـ MySQL 5.5 و config-win.h غير مرئي

في 5.5 تهيئة الفوز. انتقل بالفعل إلى المجلد المنفصل للموصل في Windows. أي smth مثل:

C: Program Files mysql Connector C 6.0.2 include

للتغلب على المشكلة ، لا يحتاج المرء فقط إلى تنزيل "Dev Bits" (الذي يربط بالفعل الموصل) ولكن أيضًا لتعديل البرامج النصية لتثبيت MySQLDB لإضافة المجلد. لقد قمت بإصلاح قذر سريعًا على هذا النحو.

site.cfg:

# Windows connector libs for MySQL.
connector = C:\Program Files\MySQL\Connector C 6.0.2

في setup_windows.py حدد موقع الخط

include_dirs = [ os.path.join(mysql_root, r'include') ]:

و أضف:

include_dirs = [ os.path.join(options['connector'], r'include') ]

بعد ذلك.

قبيح ولكن يعمل حتى يغير مؤلفو MySQLDB السلوك.


تقريبا نسيت أن أذكر. بنفس الطريقة التي يحتاج المرء إلى إضافة إدخال إضافي مماثل لـ LIBS:

library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]

أي setup_windows.py يشبه إلى حد كبير:

...
library_dirs = [ os.path.join(mysql_root, r'lib\opt') ]
library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]
libraries = [ 'kernel32', 'advapi32', 'wsock32', client ]
include_dirs = [ os.path.join(mysql_root, r'include') ]
include_dirs = [ os.path.join(options['connector'], r'include') ]
extra_compile_args = [ '/Zl' ]
...

نصائح أخرى

كل ما كان علي فعله هو الذهاب إلى Oracle ، وتنزيل موصل MySQL C 6.0.2 (الأحدث لا يعمل!) والقيام بالتثبيت النموذجي.

https://downloads.mysql.com/archives/cc/

تأكد من تضمين جميع الإضافات الاختيارية (الثنائيات الإضافية) عبر التثبيت المخصص ، دون ذلك لم ينجح في WIN64.MSI

بمجرد الانتهاء من ذلك ، ذهبت إلى Pycharms ، واخترت حزمة MySQL-Python> = 1.2.4 لتثبيت ، وعملت بشكل رائع. لا حاجة لتحديث أي تكوين أو أي شيء من هذا القبيل. كان هذا أبسط نسخة بالنسبة لي للعمل من خلال.

أتمنى أن يساعد ذلك

يبدو أن الحل المقبول لم يعد يعمل مع إصدارات أحدث من MySQL-Python. لم يعد التثبيت يوفر ملف site.cfg ملف لتعديل.

إذا كنت تقوم بتثبيت mysql-python ، فسوف تبحث عنه C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include. إذا كان لديك تثبيت 64 بت من MySQL ، فيمكنك ببساطة الاحتجاج:

  1. mklink /d "C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include"
  2. يجري pip install mysql-python
  3. حذف الرابط الرمزي الذي تم إنشاؤه في الخطوة 1

الإجابة المقبولة قديمة. تم دمج بعض الاقتراحات بالفعل في الحزمة ، وكنت لا أزال أشعر بالخطأ حول فقدان win.h & mysqlclient.lib.

  • تثبيت MySQL-Connector-C-6.0.2-win32.msi

    هناك ملف مضغوط لل Conenctor أيضًا ولكن هذا لم ينجح بسبب mysqlclient.lib في داخل lib الدليل بينما يتوقع التثبيت في lib/opt. بدلاً من hacking site.cfg أو setup_windows.py ، تقوم MSI بالمهمة.

  • PIP تثبيت mysql-python

ملاحظة: بما أنني لم أعد أستخدم MySQL ، فقد تكون إجابتي قديمة أيضًا.

أعلم أن هذا المنشور قديم للغاية ، لكنه لا يزال يتم طرحه كأفضل ضربة في Google ، لذا سأضيف المزيد من المعلومات إلى هذه المشكلة.

كنت أواجه نفس المشكلات مثل OP لكن لا يبدو أن أي من الإجابات المقترحة تعمل من أجلي. أساسا لأن "config-win.h" لم يكن موجودًا في أي مكان في مجلد تثبيت الموصل.

كنت أستخدم أحدث موصل C 6.1.6 حيث كان هذا ما اقترحه مثبت MySQL.

ومع ذلك ، لا يبدو أن هذا مدعوم بأحدث حزمة MySQL-Python (1.2.5). عند محاولة تثبيته ، يمكن أن أرى أنه يبحث صراحة عن C Connector 6.0.2.

"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"

لذلك عن طريق تثبيت هذا الإصدار من https://dev.mysql.com/downloads/file/؟id=378015 حزمة Python مثبتة دون أي مشكلة.

على الأرجح هي الإجابة هي تثبيت خيار تطوير مطور MySQL واختيار خيار "C Headers Libs" أثناء التكوين. (كما ورد في هذا الإدخال: بناء mysqldb لـ Python على Windows على RationalPie.wordpress.com)

ربما يكون الحل الأفضل هو تثبيت بناء مسبق: http://www.technicalbard.com/files/mysql-python-1.2.2.win32-py2.6.exe

إذا فشلت PIP في تثبيت "MySQLDB" ، فإن الحل البديل هو تنزيله وتثبيته على جهازك أولاً من هذا الرابط

http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

ثم انسخ جميع ملفات mysql* و _mysql* من الدلائل من نظام Python إلى DirtualEnv dir:

c:\Python27\Lib\site-packages (أو مسار مشابه لنظامك Python) إلىc:\my_virtenv\Lib\site-packages (الطريق إلى VirtualEnv)

حسنًا ، إذا كنت لا تزال تواجه المشكلة ، يمكنك تنزيل المثبت من http://code.google.com/p/soemin/downloads/detail؟name=mysql-python-1.2.3.win32-py2.7.exe

كان لدي الكثير من الصداع مع mysqldb أيضا.

لماذا لا تستخدم موصل MySQL Python الرسمي؟

easy_install mysql-connector-python

أو يمكنك تنزيله من هنا:http://dev.mysql.com/downloads/connector/python/

توثيق:http://dev.mysql.com/doc/refman/5.5/en/connector-python.html

تثبيت بتات dev for mysql تخلصت من config-win.h خطأ كنت لدي ، وألقيت آخر. Failed to load and parse the manifest. The system cannot find the file specified. لقد وجدت الإجابة على مشكلتي في هذا المنشور: http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/.

لقد قمت بنسخ الملف 'c: python26 lib distutils msvc9compiler.py` إلى افتراضيتي ، جعل التحرير المقترح في الرابط أعلاه ، والأمور تعمل بشكل جيد.

أبسط حل عمل:

تحميل موصل MySQL C 6.0.2 من أسفل الرابط والتثبيت.

http://dev.mysql.com/downloads/connector/c/6.0.html#downloads

بعد تثبيت موصل MySQL C 6.0.2 ، انسخ المجلد "MySQL Connector C 6.0.2" من "C: Program Files mysql" إلى "C: Program Files (x86) mysql".

ثم اكتب

pip install MySQL-python

سوف تعمل بالتأكيد.

في حالتي ، كان إصلاحي ينسخ المجلد الذي تم إنشاؤه من MySQL-Connector-C-6.0.2-Win32.msi (المشار إليه من المخزن المؤقت لاسم المستخدم في منشور سابق) ، والذي يقع في C: Program Files mysql mysql C 6.0.2 وإنشاء مسار جديد مع ملفات البرنامج (x86) ولصق المحتوى هناك لأن التثبيت لا يتحقق بشكل صحيح بين آلات 32 بت و 64 بت.

لذا ، فإن المسار الجديد هو C: Program Files (x86) mysql mysql connector c 6.0.2. هذا هو المسار الذي يتطلع إليه المثبت ، لذلك قمت بلصق الملفات هناك لمساعدة المثبت على العثور على الملفات ، والتي كانت تسبب الخطأ في فقدان التكوين.

محاولة ActivePython,

pypm -E C:\myvirtualenv install mysql-python

لقد اتبعت الإجابة من Bugagotti ، وهي لا تعمل في Windows (Win7 64 بت ، PY27 ولديها موصل MySQL 6.1) ل mysql-python-1.2.5 ، لذلك قمت بإجراء بعض التغييرات القذرة داخل Mysql-Python- 1.2.5:

أولاً ، الموقع. cfg:

connector = C:\Program Files\MySQL\MySQL Connector C 6.1

ثانياً ، _mysql.c:

#if defined(MS_WINDOWS)
#include <config-win.h>
#else
#include "my_config.h"
#endif

إلى:

#if 0 /*defined(MS_WINDOWS)*/
#include <config-win.h>
#else
#include "my_config.h"
#endif

ومع هذه التغييرات ، ستذهب مشكلة config_win.h ، ولكن لا تزال هناك مشكلة في الارتباط:

LINK : fatal error LNK1181: cannot open input file 'mysqlclient.lib'

لهذا ، قمت بتغيير setup_windows.py:

library_dirs = [ os.path.join(connector, r'lib\vs9') ]  ## the original value was r'lib\opt'

ثم نجحت أخيرًا.

تابعت طريقة مينغكاي شين.

لكن في حالتي ، غيرت الموصل إلى

connector = C:\Program Files\MySQL\MySQL Connector.C 6.1

ويتم تغيير Library_dirs إلى

library_dirs = [ os.path.join(connector, r'lib\vs10') ]

لأنه ليس لدي ملف vs9 الدليل. يعمل ، لكن أنا لا أعرف لماذا.

لقد قمت بتثبيت VS2012 ، ودليل LIB للموصل فقط vs10 و vs11, ، بحيث vs11 لا يعمل. يبدو أن Vcforpyhton27.mis الذي قمت بتثبيته يدعمه vs9.

على أي حال ، هذا يعمل. وإذا كنت ترغب في المخاطرة بها ، فيمكنك المحاولة.

الحل الذي عمل بالنسبة لي Windows: تثبيت كلا 32-bit و 64-إصدارات Pit من موصل MySQL/C 6.0.2. فتح Command Prompt و اهرب:

pip install mysql-python

بالنسبة لي النهج التالي حل المشكلة (Python 3.5.2 ؛ Mysqlclient 1.3.9):

  1. Dowload أحدث موصل MySQL C http://dev.mysql.com/downloads/connector/c/ (بالنسبة لي كان Windows (x86 ، 64 بت) ، مثبت MSI)
  2. ينسخ c:\Program Files\MySQL\MySQL Connector C 6.0.2\ دليل ل c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
  3. يجري pip install mysqlclient
  4. اختياري] حذف c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\

المشكلة هنا هي فقط لأصحاب تثبيت X64 بت ، نظرًا لأن برنامج Build Script يحاول تحديد موقع Connector Connector في دليل ملفات برنامج X86.

building '_mysql' extension
creating build\temp.win-amd64-2.7
creating build\temp.win-amd64-2.7\Release
C:\Users\TimHuang\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" -Ic:\python27\include -Ic:\python27\PC /Tc_mysql.c /Fobuild\temp.win-amd64-2.7\Release\_mysql.obj /Zl
_mysql.c
_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory

إذا رأيت هذا عندما تحاول pip install mysql-python, أسهل طريقة هي النسخ

C:\Program Files\MySQL\MySQL Connector C 6.0.2إلى C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2

حاولت إنشاء الرابط الرمزي ولكن Windows يستمر في رمينيC:\WINDOWS\system32>mklink /d "C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include" The system cannot find the path specified.

إذا كنت تفعل هذا في بيئة افتراضية سواء كنت تستخدم Visual Studio أو غير ذلك ، فحاولeasy_install MySQL-python

  1. تنزيل من هذا

  2. ثم قم بتثبيت هذا WHL بواسطة PIP Installer. Shift + انقر بزر الماوس الأيمن في المجلد الذي تم تنزيله واختر Open powershell here. ثم التثبيت باستخدام الأمر: pip install package_name.whl

قم بتنزيل إصدار الموصل من https://dev.mysql.com/downloads/connector/c/6.0.htmlبالنسبة لحالتي ، قمت بتثبيت 64 بت من الموصل وكان بيثون 32 بت. لذلك اضطررت إلى نسخ MySQL من ملفات البرامج إلى ملفات البرامج (86)

خطوات لـ Window10:

  • اذهب إلى https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
  • قم بتنزيل الإصدار المناسب وفقًا لإصدار Python ومواصفات الأجهزة: لحالتي ، mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl يعمل ل Python3.7 و Intel CPU.
  • بينما لا يزال ENV الخاص بك يتم تنشيطه ، انتقل إلى مجلد التنزيل وتشغيله pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top