ошибка: Не удалось найти vcvarsall.bat при установке PyMSSQL-2.0.0b1, что мне не хватает?

Ну, я пытаюсь установить PyMSSQL-2.0.0b1 и не могу этого добиться, получаю странные ошибки... я пробовал некоторые решения, найденные в Google и StackOverflow, но все еще не могу скомпилировать...

пожалуйста, что мне не хватает?

(поэтому я пробовал:

- to add --compiler=mingw32 after setup.py install build 
- to create a distutils.cfd file in Python27\lib\distutils\distutils.cfg with 
    [build]
    compiler=mingw32

и до сих пор не работает)

(также я на Windows 7, и мне нужны сторонние библиотеки, я должен придерживаться 32-битной версии и 2.7)

вот лог с ошибками:

C:\Users\MyUserName\Desktop\downloaded\python\pymssql-2.0.0b1-dev-20111019>setup.py install build
running install
running bdist_egg
running egg_info
writing pymssql.egg-info\PKG-INFO
writing top-level names to pymssql.egg-info\top_level.txt
writing dependency_links to pymssql.egg-info\dependency_links.txt
reading manifest file 'pymssql.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pymssql.egg-info\SOURCES.txt'
installing library code to build\bdist.win32\egg
running install_lib
running build_ext
skipping '_mssql.c' Cython extension (up-to-date)
building '_mssql' extension
error: Unable to find vcvarsall.bat

C:\Users\MyUserName\Desktop\downloaded\python\pymssql-2.0.0b1-dev-20111019>setup.
py install build --compiler=mingw32
running install
running bdist_egg
running egg_info
writing pymssql.egg-info\PKG-INFO
writing top-level names to pymssql.egg-info\top_level.txt
writing dependency_links to pymssql.egg-info\dependency_links.txt
reading manifest file 'pymssql.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pymssql.egg-info\SOURCES.txt'
installing library code to build\bdist.win32\egg
running install_lib
running build_ext
skipping '_mssql.c' Cython extension (up-to-date)
building '_mssql' extension
c:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Users\MyUserName\Desktop\laur
ent.CTV\python\pymssql-2.0.0b1-dev-20111019\win32\freetds\include -IC:\Python27\
include -IC:\Python27\PC -c _mssql.c -o build\temp.win32-2.7\Release\_mssql.o -D
MSDBLIB -Wl,-allow-multiple-definition -Wl,-subsystem,windows-mthreads -mwindows
 -Wl,--strip-all
cc1.exe: erreur: unrecognized command line option '-mno-cygwin'
error: command 'gcc' failed with exit status 1

C:\Users\MyUserName\Desktop\downloaded\python\pymssql-2.0.0b1-dev-20111019>python

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^Z

C:\Users\MyUserName\Desktop\downloaded\python\pymssql-2.0.0b1-dev-20111019>gcc --version
gcc (GCC) 4.6.1
Copyright © 2011 Free Software Foundation, Inc.
Ce logiciel est libre; voir les sources pour les conditions de copie.  Il n'y a
PAS
GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIER.

после создания disutils.cfg

C:\Users\MyUserName\Desktop\downloaded\python\pymssql-2.0.0b1-dev-20111019>setup.py install build
running install
running bdist_egg
running egg_info
writing pymssql.egg-info\PKG-INFO
writing top-level names to pymssql.egg-info\top_level.txt
writing dependency_links to pymssql.egg-info\dependency_links.txt
reading manifest file 'pymssql.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pymssql.egg-info\SOURCES.txt'
installing library code to build\bdist.win32\egg
running install_lib
running build_ext
skipping '_mssql.c' Cython extension (up-to-date)
building '_mssql' extension
c:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Users\MyUserName\Desktop\laur
ent.CTV\python\pymssql-2.0.0b1-dev-20111019\win32\freetds\include -IC:\Python27\
include -IC:\Python27\PC -c _mssql.c -o build\temp.win32-2.7\Release\_mssql.o -D
MSDBLIB -Wl,-allow-multiple-definition -Wl,-subsystem,windows-mthreads -mwindows
 -Wl,--strip-all
cc1.exe: erreur: unrecognized command line option '-mno-cygwin'
error: command 'gcc' failed with exit status 1

C:\Users\MyUserName\Desktop\downloaded\python\pymssql-2.0.0b1-dev-20111019>type c:\Python27\lib\distutils\distutils.cfg
[build]
compiler=mingw32

РЕДАКТИРОВАТЬ: похоже на открытую проблему, связанную с http://bugs.python.org/issue12641 и часть '-mno-cygwin' (кстати, если я правильно понимаю)


person lctv31    schedule 27.10.2011    source источник


Ответы (5)


Когда вы устанавливаете пакеты для python 2.7, он ищет Visual Studio 2008. Все, что мне нужно было сделать, чтобы это исправить, это установить переменную VS90COMNTOOLS перед вызовом setup.py.

Если у вас установлена ​​Visual Studio 2010, выполните

НАБОР VS90COMNTOOLS=%VS100COMNTOOLS%

или с установленной Visual Studio 2012

НАБОР VS90COMNTOOLS=%VS110COMNTOOLS%

person Zach    schedule 22.02.2013
comment
Кроме того, я нашел эту ссылку полезной в Windows. У него есть установщики .exe вместо вашего стандартного пакета Python. lfd.uci.edu/~gohlke/pythonlibs/#pymssql - person Zach; 01.03.2013

Вы установили 32-битную или 64-битную версию Python? Пожалуйста, попробуйте установить 32-битную версию.

person Christophe Debove    schedule 04.11.2011
comment
на самом деле удалите оба и переустановите только 32-битную версию. Похоже, есть некоторые другие трудности при установке обоих. Поэтому решил придерживаться 32-битной версии только для Python и других библиотек, чтобы избежать каких-либо несовместимостей, по той же причине придерживайтесь Python 2.7. - person lctv31; 04.11.2011

Вы уже пытались скомпилировать с помощью компилятора, поставляемого с Visual Studio, вместо MingW32? (Файл "vcvarsall.bat" инициализирует среду VS)

(Экспресс-версии Visual Studio бесплатны)

person gecco    schedule 07.11.2011
comment
нет, я не пробовал, я читал, что мне пришлось использовать MinGW для чего-то вроде другой проблемы совместимости (я просто не помню, почему прямо сейчас). Я много читал об этой проблеме в Интернете, но не помню всего, что я проверял. Кстати, я не понимаю, почему он ищет vcvarsall.bat, пока я использую MinGW32... - person lctv31; 08.11.2011
comment
VS, похоже, используется по умолчанию: vcvarsall.bat ищется только в том случае, если вы не используете MinGW (вы делаете это с помощью опции --compiler=mingw32 или файла distutils.cfg) - person gecco; 08.11.2011

Попробуйте использовать версию MinGW с GCC 4.5.2.

Эта версия поддерживает параметр -mno-cygwin и должна правильно собираться.

Используя эту версию, я успешно создал PyMSSQL-2.0.0b1 в 64-разрядной версии Windows 7 с 32-разрядной версией Python 2.7.

Я не модифицировал исходный архив. Я только что выполнил следующую команду в исходном каталоге: python setup.py build --compiler=mingw32. У меня есть C:\MinGW\bin в моем PATH.

Примечание. Мне не хватало Cython, поэтому я скачал последнюю version и также построил ее с помощью MinGW. Я сделал это, запустив python setup.py build --compiler=mingw32. Единственной другой зависимостью, которую мне не хватало, была библиотека iconv, и я создал ее внутри MinGW, используя эти указания.

person Steven T. Snyder    schedule 08.11.2011

Я думаю, что у вас есть неправильная версия для вас немного.

person Justin Gardner    schedule 09.11.2011
comment
если вы прочитаете женщину ниже, вы узнаете, что он установил и 32, и 64, и только 32 - person Christophe Debove; 10.11.2011