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 설치가있는 경우 다음을 간단히 호출 할 수 있습니다.
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"
- 운영
pip install mysql-python
- 1 단계에서 만든 심볼릭 링크를 삭제합니다.
허용 된 답변이 오래되었습니다. 일부 제안은 이미 패키지에 포함되어 있으며 config-win.h 및 mysqlclient.lib 누락에 대한 오류가 계속 발생했습니다.
설치 MySQL의 커넥터-C-6.0.2-win32.msi
이 너무 conenctor에 대한 zip 파일입니다 때문이 아니라 그 일을하지 않았다
mysqlclient.lib
에lib
설치 프로그램에 기대하는 반면 디렉토리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):
- Dowload latest MySQL C Connector http://dev.mysql.com/downloads/connector/c/ (for me was Windows (x86, 64-bit), MSI Installer)
- Copy
c:\Program Files\MySQL\MySQL Connector C 6.0.2\
directory toc:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
- Run
pip install mysqlclient
- [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
Download from this
- Python 2.7: https://pypi.python.org/pypi/mysqlclient/1.3.9
- Python 3.6: https://pypi.python.org/pypi/mysqlclient
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
'development' 카테고리의 다른 글
Vagrantfile 내에서 Vagrant 플러그인을 요구하십니까? (0) | 2020.10.28 |
---|---|
angular2는 특정 요소에서 수동으로 클릭 이벤트를 발생시킵니다. (0) | 2020.10.28 |
다른 문자열에서 첫 번째 부분 문자열을 제거하는 가장 간단한 방법 (0) | 2020.10.28 |
jQuery 토글 CSS? (0) | 2020.10.28 |
토큰을 사용하여 C ++ std :: string 분할 (예 : ";") (0) | 2020.10.28 |