4

I had the vcvarsall.bat problem, so I followed the directions here How to use MinGW's gcc compiler when installing Python package using Pip? .

Now, when using pip install lxml with Python 3.2.2 on Windows 7 I get the following error:

C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python32\include -IC:\Pytho
n32\PC -c src/lxml/lxml.etree.c -o build\temp.win32-3.2\Release\src\lxml\lxml.et
ree.o -w

cc1.exe: error: unrecognized command line option '-mno-cygwin'

error: command 'gcc' failed with exit status 1

The entire output:

C:\Python32\Scripts>pip-3.2.exe install lxml
Downloading/unpacking lxml
  Real name of requirement lxml is lxml
  Downloading lxml-2.3.3.tar.gz (3.1Mb): 3.1Mb downloaded
  Running setup.py egg_info for package lxml
    Building lxml version 2.3.3.
    Building without Cython.
    ERROR: b"'xslt-config' is not recognized as an internal or external command,
\r\noperable program or batch file.\r\n"
    ** make sure the development packages of libxml2 and libxslt are installed *
*

    Using build configuration of libxslt

    warning: no files found matching 'lxml.etree.c' under directory 'src\lxml'
    warning: no files found matching 'lxml.objectify.c' under directory 'src\lxm
l'
    warning: no files found matching 'lxml.etree.h' under directory 'src\lxml'
    warning: no files found matching 'lxml.etree_api.h' under directory 'src\lxm
l'
    warning: no files found matching 'etree_defs.h' under directory 'src\lxml'
    warning: no files found matching 'pubkey.asc' under directory 'doc'
    warning: no files found matching 'tagpython*.png' under directory 'doc'
    warning: no files found matching 'Makefile' under directory 'doc'
Installing collected packages: lxml
  Running setup.py install for lxml
    Building lxml version 2.3.3.
    Building without Cython.
    ERROR: b"'xslt-config' is not recognized as an internal or external command,
\r\noperable program or batch file.\r\n"
    ** make sure the development packages of libxml2 and libxslt are installed *
*

    Using build configuration of libxslt
    building 'lxml.etree' extension
    C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python32\include -IC:\P
ython32\PC -c src/lxml/lxml.etree.c -o build\temp.win32-3.2\Release\src\lxml\lxm
l.etree.o -w
    cc1.exe: error: unrecognized command line option '-mno-cygwin'
    error: command 'gcc' failed with exit status 1
    Complete output from command C:\Python32\python.exe -c "import setuptools;__
file__='C:\\Python32\\Scripts\\build\\lxml\\setup.py';exec(compile(open(__file__
).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-ext
ernally-managed --record c:\windows\temp\pip-w4t58y-record\install-record.txt:
    Building lxml version 2.3.3.

Building without Cython.

ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\n
operable program or batch file.\r\n"

** make sure the development packages of libxml2 and libxslt are installed **



Using build configuration of libxslt

running install

running build

running build_py

creating build

creating build\lib.win32-3.2

creating build\lib.win32-3.2\lxml

copying src\lxml\builder.py -> build\lib.win32-3.2\lxml

copying src\lxml\cssselect.py -> build\lib.win32-3.2\lxml

copying src\lxml\doctestcompare.py -> build\lib.win32-3.2\lxml

copying src\lxml\ElementInclude.py -> build\lib.win32-3.2\lxml

copying src\lxml\pyclasslookup.py -> build\lib.win32-3.2\lxml

copying src\lxml\sax.py -> build\lib.win32-3.2\lxml

copying src\lxml\usedoctest.py -> build\lib.win32-3.2\lxml

copying src\lxml\_elementpath.py -> build\lib.win32-3.2\lxml

copying src\lxml\__init__.py -> build\lib.win32-3.2\lxml

creating build\lib.win32-3.2\lxml\html

copying src\lxml\html\builder.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\clean.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\defs.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\diff.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\ElementSoup.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\formfill.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\html5parser.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\soupparser.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\usedoctest.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\_dictmixin.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\_diffcommand.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\_html5builder.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\_setmixin.py -> build\lib.win32-3.2\lxml\html

copying src\lxml\html\__init__.py -> build\lib.win32-3.2\lxml\html

creating build\lib.win32-3.2\lxml\isoschematron

copying src\lxml\isoschematron\__init__.py -> build\lib.win32-3.2\lxml\isoschema
tron

copying src\lxml\etreepublic.pxd -> build\lib.win32-3.2\lxml

copying src\lxml\tree.pxd -> build\lib.win32-3.2\lxml

copying src\lxml\etree_defs.h -> build\lib.win32-3.2\lxml

creating build\lib.win32-3.2\lxml\isoschematron\resources

creating build\lib.win32-3.2\lxml\isoschematron\resources\rng

copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win
32-3.2\lxml\isoschematron\resources\rng

creating build\lib.win32-3.2\lxml\isoschematron\resources\xsl

copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win32-3
.2\lxml\isoschematron\resources\xsl

copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win32-3
.2\lxml\isoschematron\resources\xsl

creating build\lib.win32-3.2\lxml\isoschematron\resources\xsl\iso-schematron-xsl
t1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_e
xpand.xsl -> build\lib.win32-3.2\lxml\isoschematron\resources\xsl\iso-schematron
-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_inclu
de.xsl -> build\lib.win32-3.2\lxml\isoschematron\resources\xsl\iso-schematron-xs
lt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron
_message.xsl -> build\lib.win32-3.2\lxml\isoschematron\resources\xsl\iso-schemat
ron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron
_skeleton_for_xslt1.xsl -> build\lib.win32-3.2\lxml\isoschematron\resources\xsl\
iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_x
slt1.xsl -> build\lib.win32-3.2\lxml\isoschematron\resources\xsl\iso-schematron-
xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt ->
build\lib.win32-3.2\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

running build_ext

building 'lxml.etree' extension

creating build\temp.win32-3.2

creating build\temp.win32-3.2\Release

creating build\temp.win32-3.2\Release\src

creating build\temp.win32-3.2\Release\src\lxml

C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python32\include -IC:\Pytho
n32\PC -c src/lxml/lxml.etree.c -o build\temp.win32-3.2\Release\src\lxml\lxml.et
ree.o -w

cc1.exe: error: unrecognized command line option '-mno-cygwin'

error: command 'gcc' failed with exit status 1

----------------------------------------
Command C:\Python32\python.exe -c "import setuptools;__file__='C:\\Python32\\Scr
ipts\\build\\lxml\\setup.py';exec(compile(open(__file__).read().replace('\r\n',
'\n'), __file__, 'exec'))" install --single-version-externally-managed --record
c:\windows\temp\pip-w4t58y-record\install-record.txt failed with error code 1
Storing complete log in C:\Users\x\AppData\Roaming\pip\pip.log

The same thing happens with easy_install, but it doesn't happen when I install a package like 'bible'.

Community
  • 1
  • 1
joshj
  • 473
  • 5
  • 11
  • Looks pretty straight forward. Did you check to see if the dev packages for libxml2 and libxslt are available to mingw? It's required for what you need. – Jeff LaFay Feb 03 '12 at 15:07
  • You're right, I just did that. I still get the the error. The libxslt package from http://xmlsoft.org/sources/win32/ doesn't come with the missing xslt-config, and I still get the `unrecognized command line option '-mno-cygwin'` error. – joshj Feb 03 '12 at 15:14
  • You may also want to check if it's the _dev_ packages that are installed. I believe those would be separate from the main lib packages. I'm not heavily experienced in mingw, so I'm not sure what else you can try beyond that. I do python development with windows and I just use the windows python install. If this is an initial install for python, I would try that instead if it's possible. You just have to make sure all of your dependencies can be satisfied on windows. I've come across very few packages on pypi that wouldn't work with windows that I needed.. so far. – Jeff LaFay Feb 03 '12 at 15:18
  • I just tried installing Cython; same `unrecognized command line option '-mno-cygwin'` problem. – joshj Feb 03 '12 at 15:22
  • Maybe it's because you're using a cygwin flag for mingw and windows. Try the same command and without the '-mno-cygwin' flag. – Jeff LaFay Feb 03 '12 at 15:31
  • pip and easy_install do it automatically. – joshj Feb 03 '12 at 15:32
  • If you're still having trouble, you should try the SO python chat room and see if anyone there has had experience with your problem. – Jeff LaFay Feb 03 '12 at 15:32
  • I'll probably just switch to Ruby. – joshj Feb 03 '12 at 15:33
  • I'm on Win 7 32-bit and it works on mine. Not sure what else you could try at this point. – Jeff LaFay Feb 03 '12 at 15:34
  • 3
    why don't you use [binary installers on Windows](http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml)? – jfs Feb 03 '12 at 15:47
  • possible duplicate of [Compiling with cython and mingw produces gcc: error: unrecognized command line option '-mno-cygwin'](http://stackoverflow.com/questions/6034390/compiling-with-cython-and-mingw-produces-gcc-error-unrecognized-command-line-o) – Piotr Dobrogost Feb 04 '12 at 16:52

1 Answers1

5

It is a known issue with distutils: mingw & -mno-cygwin with recent gcc.

See related SO question: Compiling with cython and mingw produces gcc: error: unrecognized command line option '-mno-cygwin'.

Try to remove -mno-cygwin from Mingw32CCompiler.

Community
  • 1
  • 1
jfs
  • 399,953
  • 195
  • 994
  • 1,670
  • 1
    @user175492: Yes, most search engines will take a search from -mno-cygwin as anything *not* containing "mno-cygwin". Putting it in quotes would have worked as well. – Lennart Regebro Feb 03 '12 at 17:45
  • Good, but didn't solve my issue. But I think it brings me forward. Thanks. – Florian Lagg Jun 06 '13 at 11:34
  • How to remove `-mno-cygwin` from Mingw32CCompiler? If it can be done with a cmd command then please state. – Omar Tariq Jul 12 '15 at 15:50
  • @OmarTariq: It is already fixed in the recent Python versions (click the first link in the answer). Though if you are reading this answer then your Python version might be out-of-date and you have to manually edit the source code on your machine (click the last link in the answer). – jfs Jul 12 '15 at 16:03