development

mysql-python을 설치하는 동안 "포함 파일을 열 수 없습니다 : 'config-win.h': 해당 파일 또는 디렉토리가 없습니다."

big-blog 2020. 10. 28. 08:25
반응형

mysql-python을 설치하는 동안 "포함 파일을 열 수 없습니다 : 'config-win.h': 해당 파일 또는 디렉토리가 없습니다."


Windows에서 pip를 사용하여 virtualenv에 mysql-python을 설치하려고합니다. 처음에는 여기에 동일한 오류 가보고 되었지만 거기에 대한 대답도 저에게 효과적이었습니다. 이제 다음과 같은 오류가 발생합니다.

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

내 일반 (virtualenv가 아님) python의 site-packages / MySQLdb dir에 심볼릭 링크 (Win7)하면

Error loading MySQLdb module: No module named _mysql

나는 여기서 헤매고있다. 포인터가 있습니까?


mysql 5.5 및 config-win.h 업데이트가 보이지 않는 문제

5.5 config-win에서. 실제로 Windows의 Connector 별도 폴더로 이동했습니다. 즉 smth 같은 :

C : \ Program Files \ MySQL \ Connector C 6.0.2 \ include

문제를 극복하려면 "dev bits"(실제로 커넥터를 연결 ) 를 다운로드 할 뿐만 아니라 mysqldb 설치 스크립트를 수정하여 include 폴더를 추가해야합니다. 나는 그것으로 빠른 더러운 수정을했다.

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' ]
...

내가해야 할 일은 오라클로 가서 MySQL Connector C 6.0.2 ( 최신 버전은 작동하지 않습니다! )를 다운로드하고 일반적인 설치를 수행하는 것뿐이었습니다.

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

사용자 지정 설치를 통해 모든 선택적 추가 (Extra Binaries)를 포함해야합니다. 이러한 항목이 없으면 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 단계에서 만든 심볼릭 링크를 삭제합니다.

허용 된 답변이 오래되었습니다. 일부 제안은 이미 패키지에 포함되어 있으며 config-win.h 및 mysqlclient.lib 누락에 대한 오류가 계속 발생했습니다.

  • 설치 MySQL의 커넥터-C-6.0.2-win32.msi

    이 너무 conenctor에 대한 zip 파일입니다 때문이 아니라 그 일을하지 않았다 mysqlclient.liblib설치 프로그램에 기대하는 반면 디렉토리 lib/opt. site.cfg 또는 setup_windows.py를 해킹하는 대신 msi가 작업을 수행합니다.

  • pip 설치 mysql-python

추신 MySQL을 더 이상 사용하지 않기 때문에 내 대답도 구식 일 수 있습니다.


이 게시물이 매우 오래되었다는 것을 알고 있지만 여전히 Google에서 가장 인기있는 항목이므로이 문제에 대해 더 많은 정보를 추가하겠습니다.

OP와 동일한 문제가 있었지만 제안 된 답변 중 어느 것도 나를 위해 작동하지 않는 것 같습니다. 주로 커넥터 설치 폴더에 "config-win.h"가 없었기 때문입니다.

MySQL 설치 프로그램에서 제안한대로 최신 Connector C 6.1.6을 사용하고있었습니다.

그러나 이것은 최신 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 Developer Build를 설치하고 구성 중에 "C headers \ libs"옵션을 선택하는 것입니다. (이 항목에보고 된대로 : rationalpie.wordpress.com의 Windows에서 Python 용 MySQLdb 빌드)

아마도 더 나은 해결책은 미리 컴파일 된 빌드를 설치하는 것입니다 : 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

그런 다음 시스템 Python의 모든 MySQL * 및 _mysql * 파일과 디렉터리를 Virtualenv 디렉터리로 복사합니다.

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


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'파일을 내 virtualenv에 복사하고 위 링크에서 제안한 편집을 수행했으며 모든 것이 잘 작동합니다.


가장 간단한 작업 솔루션 :

아래 링크에서 MySQL Connector C 6.0.2다운로드 하고 설치합니다.

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

MySQL Connector C 6.0.2를 설치 한 후 "C : \ Program Files \ MySQL"에서 "MySQL Connector C 6.0.2"폴더를 "C : \ Program Files (x86) \ MySQL"로 복사합니다.

그런 다음 입력

pip install MySQL-python

확실히 작동합니다.


In my case, my fix was copying the folder created from mysql-connector-c-6.0.2-win32.msi (referenced from username buffer in a previous post), which is located at c:\Program Files\MySQL\MySQL Connector C 6.0.2 and creating a new path with Program Files (x86) and pasting the content there since the installation is not properly checking between 32-bit and 64-bit machines.

So, the new path is C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2. This is the path that the installer is looking to find, so I pasted the files there to help the installer to find the files, which was causing the error about missing config-win.h


Try ActivePython,

pypm -E C:\myvirtualenv install mysql-python

I did follow the answer from Bugagotti, And it does not work in my windows (Win7 64 bit, py27 and have mysql connector 6.1 installed) for mysql-python-1.2.5, so I made some even dirty changes inside mysql-python-1.2.5:

First, the site.cfg:

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

Second, the _mysql.c :

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

To:

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

And with these changes ,the config_win.h issue will gone, but there is still a link issue:

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

For this, I changed the setup_windows.py:

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

Then it worked finally.


I followed Mingcai SHEN's method.

But in my case, I changed the connector to

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

And the library_dirs is changed to

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

because I don't have a vs9 directory. It works, but I don't know why.

I have vs2012 installed, and the lib directory of the connector only has vs10 and vs11, in which vs11 doesn't work. The VCForPyhton27.mis I installed seems to support vs9.

Anyway, this works. And if you want to risk it, you can try.


Solution that worked for me on Windows: Install both the 32-bit and 64-bit versions of the MySQL Connector/C 6.0.2. Open Command Prompt and run:

pip install mysql-python

For me the following approach solved the issue (Python 3.5.2; mysqlclient 1.3.9):

  1. Dowload latest MySQL C Connector http://dev.mysql.com/downloads/connector/c/ (for me was Windows (x86, 64-bit), MSI Installer)
  2. Copy c:\Program Files\MySQL\MySQL Connector C 6.0.2\ directory to c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
  3. Run pip install mysqlclient
  4. [optional] delete c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\

The issue here is only for x64 bit installation owners, since build script is trying to locate C connector includes in x86 program files directory.


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

If you see this when you try pip install mysql-python, the easiest way is to copy

C:\Program Files\MySQL\MySQL Connector C 6.0.2 to C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2

I tried to create the symbolic link but Windows keeps throwing me 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.


If you are doing this in a virtual environment whether using Visual Studio or otherwise, try easy_install MySQL-python


  1. Download from this

  2. Then install this whl by pip installer. Shift + right click in Downloaded folder and choose Open powershell here. Then install using command: pip install package_name.whl


Download the version of Connector from https://dev.mysql.com/downloads/connector/c/6.0.html For my case I had installed 64 bit of connector and my python was 32 bit. So I had to copy MySQL from program files to Program Files(86)


Steps for Window10:

  • Go to https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
  • Download the right version according to python version and hardware specs: for my case, mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl works for python3.7 and Intel CPU.
  • While your env is still activated, go to the download folder and run pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl

참고URL : https://stackoverflow.com/questions/1972259/cannot-open-include-file-config-win-h-no-such-file-or-directory-while-inst

반응형