Hi Russell,

Thanks for the reply. I program Python 2 and 3 on various Linux systems but not much on Cygwin. It normally is not a problem to have both so I didn't think it would be a problem on Cygwin. Since I have scripts for 2 on Cygwin, I'm thinking I should toss 3,at least for now, and just stick with 2. I have a lot to think about at this point. Using  an environment layer adds more complexity when I want to launch a script from a Windows application or bat file.

On 9/22/2021 5:49 AM, Russell VT wrote:
First off, this *probably* isn't a Cygwin problem ... but it looks like your environment is confused as it's using BOTH Python2 and Python3 modules to try to fulfill the requirements (including resources that have already been cached).

For the most part, pip and pip3 can differentiate, but there's a "cart" and "horse" problem, as if you install things in a weird order at the system level, it may or may not do the right thing. But, I'd recommend "dumping" Python2, if you can at this point (it was EOL'd in December of 2020 and WILL NOT receive more updates, except for security ... and more-over, Python 3.7+ (approx) is going to demand newer SSL libraries that will REALLY confuse earlier versions).

For working with Python (as a Python devops type), I generally recommend using 'pyenv' and 'pyenv-virtualenv' and trying to do *as little as possible* to modify the system-level Python ...this gets HARD with a system like Cygwin, where the generic user can generally overwrite system binaries, without any real sort of warning (and NO, UAC does NOT adequately fix anything).

That also said, pyenv kinda really "fights" with Cygwin in some of the library placement (specifically things like FFI, IIRC, which is stored in a different library directory than it is, anywhere else I've found).

Where I MIGHT start is to "Force Reinstall" the Python3 stuff from Setup. Look to see if requests_html is part of the Cygwin-supported modules, and use THAT... use the hell out of anything you see in the actual Python packages list, as those will at least be done RIGHT, and will leave you with more cycles to not worry about too much, except your development.

For "Advanced" handling in Python, you're going to want to use "pyenv" or some other multi-python managers that are out there (virtualenv and virtualenv-wrapper are good, but ONLY manage the library path). Pretty much "pyenv" and "pipenv" are the top two, IIRC. I use pyenv, and haven't dug too deep in to pipenv, at this point. But, like I said, it's already tough enough to manage on older systems with older libraries (SSL, specifically, throws wrenches in to *everything*).

Feel free to hit me up for other ideas... I write too much Python code, as it is, and on too many different environments (yes, some still do Python2.3 through 2.6, and it makes me want to shoot myself, sometimes... LOL).

Hope that helps -
Russell VT


On Tue, Sep 21, 2021 at 11:38 AM Dennis Putnam <d...@bellsouth.net <mailto:d...@bellsouth.net>> wrote:

    I am trying to install 'requests_html' and when it tries to do a
    compile
    it fails because Python.h is missing. I have python2-devl
    installed. I
    notice that it is looking for it in /pub which apparently does not
    exist. Can someone help? TIA.

    Here is the entire 'pip' output:

    $ pip install requests_html
    Collecting requests_html
       Using cached requests_html-0.10.0-py3-none-any.whl (13 kB)
    Collecting requests
       Using cached requests-2.26.0-py2.py3-none-any.whl (62 kB)
    Collecting w3lib
       Using cached w3lib-1.22.0-py2.py3-none-any.whl (20 kB)
    Collecting parse
       Using cached parse-1.19.0.tar.gz (30 kB)
    Collecting fake-useragent
       Using cached fake-useragent-0.1.11.tar.gz (13 kB)
    Collecting pyquery
       Using cached pyquery-1.4.3-py3-none-any.whl (22 kB)
    Collecting bs4
       Using cached bs4-0.0.1.tar.gz (1.1 kB)
    Collecting pyppeteer>=0.0.14
       Using cached pyppeteer-0.2.6-py3-none-any.whl (83 kB)
    Requirement already satisfied: tqdm<5.0.0,>=4.42.1 in
    /usr/local/lib/python3.8/site-packages (from
    pyppeteer>=0.0.14->requests_html) (4.62.3)
    Requirement already satisfied: urllib3<2.0.0,>=1.25.8 in
    /usr/local/lib/python3.8/site-packages (from
    pyppeteer>=0.0.14->requests_html) (1.26.6)
    Collecting appdirs<2.0.0,>=1.4.3
       Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
    Collecting importlib-metadata>=1.4
       Using cached importlib_metadata-4.8.1-py3-none-any.whl (17 kB)
    Requirement already satisfied: pyee<9.0.0,>=8.1.0 in
    /usr/local/lib/python3.8/site-packages (from
    pyppeteer>=0.0.14->requests_html) (8.2.2)
    Requirement already satisfied: websockets<10.0,>=9.1 in
    /usr/local/lib/python3.8/site-packages (from
    pyppeteer>=0.0.14->requests_html) (9.1)
    Requirement already satisfied: zipp>=0.5 in
    /usr/local/lib/python3.8/site-packages (from
    importlib-metadata>=1.4->pyppeteer>=0.0.14->requests_html) ( 3.5.0)
    Requirement already satisfied: beautifulsoup4 in
    /usr/local/lib/python3.8/site-packages (from bs4->requests_html)
    (4.10.0)
    Requirement already satisfied: soupsieve>1.2 in
    /usr/local/lib/python3.8/site-packages (from
    beautifulsoup4->bs4->requests_html) (2.2.1)
    Collecting cssselect>0.7.9
       Using cached cssselect-1.1.0-py2.py3-none-any.whl (16 kB)
    Collecting lxml>=2.1
       Using cached lxml-4.6.3.tar.gz (3.2 MB)
    Collecting idna<4,>=2.5
       Using cached idna-3.2-py3-none-any.whl (59 kB)
    Collecting certifi>=2017.4.17
       Using cached certifi-2021.5.30-py2.py3-none-any.whl (145 kB)
    Collecting charset-normalizer~=2.0.0
       Using cached charset_normalizer-2.0.6-py3-none-any.whl (37 kB)
    Requirement already satisfied: six>=1.4.1 in
    /usr/local/lib/python3.8/site-packages (from w3lib->requests_html)
    (1.16.0)
    Using legacy 'setup.py install' for bs4, since package 'wheel' is not
    installed.
    Using legacy 'setup.py install' for fake-useragent, since package
    'wheel' is not installed.
    Using legacy 'setup.py install' for parse, since package 'wheel'
    is not
    installed.
    Using legacy 'setup.py install' for lxml, since package 'wheel' is
    not
    installed.
    Installing collected packages: lxml, importlib-metadata, idna,
    cssselect, charset-normalizer, certifi, appdirs, w3lib, requests,
    pyquery, pyppeteer,
    parse, fake-useragent, bs4, requests-html
         Running setup.py install for lxml ... error
         ERROR: Command errored out with exit status 1:
          command: /usr/bin/python -u -c 'import io, os, sys, setuptools,
    tokenize; sys.argv[0] =
    '"'"'/tmp/pip-install-mp64a75l/lxml_61e1128ed27f4063936a
    7a21e44c273e/setup.py'"'"';
    
__file__='"'"'/tmp/pip-install-mp64a75l/lxml_61e1128ed27f4063936a7a21e44c273e/setup.py'"'"';f

    = getattr(tokenize, '"'"'open'"'"', open)(__file__) if
    os.path.exists(__file__) else io.StringIO('"'"'from setuptools import
    setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"',
    '"'"'\n'"'"');f.close();exec(compile(code, __file__,
    '"'"'exec'"'"'))'
    install --record /tmp/pip-record-qafwouur/install-record.txt
    --single-version-externally-managed --compile --install-headers
    /usr/local/include/python3.8/lxml
              cwd:
    /tmp/pip-install-mp64a75l/lxml_61e1128ed27f4063936a7a21e44c273e/
         Complete output (86 lines):
         Building lxml version 4.6.3.
         Building without Cython.
         Building against libxml2 2.9.10 and libxslt 1.1.29
         running install
         running build
         running build_py
         creating build
         creating build/lib.cygwin-3.2.0-x86_64-3.8
         creating build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/builder.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/cssselect.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/doctestcompare.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/ElementInclude.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/pyclasslookup.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/sax.py -> build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/usedoctest.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/_elementpath.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/__init__.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         creating build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/__init__.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         creating build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/builder.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/clean.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/defs.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/diff.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/ElementSoup.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/formfill.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/html5parser.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/soupparser.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/usedoctest.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/_diffcommand.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/_html5builder.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/_setmixin.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         copying src/lxml/html/__init__.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/html
         creating build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron
         copying src/lxml/isoschematron/__init__.py ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron
         copying src/lxml/etree.h ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/etree_api.h ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/lxml.etree.h ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/lxml.etree_api.h ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml
         copying src/lxml/includes/c14n.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/config.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/dtdvalid.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/etreepublic.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/htmlparser.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/relaxng.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/schematron.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/tree.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/uri.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/xinclude.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/xmlerror.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/xmlparser.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/xmlschema.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/xpath.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/xslt.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/__init__.pxd ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/etree_defs.h ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         copying src/lxml/includes/lxml-version.h ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/includes
         creating
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron/resources
         creating
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron/resources/rng
         copying
    src/lxml/isoschematron/resources/rng/iso-schematron.rng ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron/resources/rng
         creating
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron/resources/xsl
         copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron/resources/xsl
         copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron/resources/xsl
         creating
    
build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1


         copying
    
src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl

    -> build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron
    /resources/xsl/iso-schematron-xslt1
         copying
    
src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl

    -> build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron/re
    sources/xsl/iso-schematron-xslt1
         copying
    
src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl

    -> build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschemat
    ron/resources/xsl/iso-schematron-xslt1
         copying
    
src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl

    -> build/lib.cygwin-3.2.0-x86_64-3.8/lxml
    /isoschematron/resources/xsl/iso-schematron-xslt1
         copying
    
src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl

    -> build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron/
    resources/xsl/iso-schematron-xslt1
         copying
    src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt
    ->
    build/lib.cygwin-3.2.0-x86_64-3.8/lxml/isoschematron/resources/xs
    l/iso-schematron-xslt1
         running build_ext
         building 'lxml.etree' extension
         creating build/temp.cygwin-3.2.0-x86_64-3.8
         creating build/temp.cygwin-3.2.0-x86_64-3.8/src
         creating build/temp.cygwin-3.2.0-x86_64-3.8/src/lxml
         gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3
    -Wall
    -ggdb -O2 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
    -fstack-protector-strong --param=ssp-buffer-size=4
    -DOPENSSL_NO_SSL3=1
    
-fdebug-prefix-map=/pub/devel/python/python38/python38-3.8.10-1.x86_64/build=/usr/src/debug/python38-3.8.10-1

    
-fdebug-prefix-map=/pub/devel/python/python38/python38-3.8.10-1.x86_64/src/Python-3.8.10=/usr/src/debug/python38-3.8.10-1

    -ggdb -O2 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
    -fstack-protector-strong --param=ssp-buffer-size=4
    -DOPENSSL_NO_SSL3=1
    
-fdebug-prefix-map=/pub/devel/python/python38/python38-3.8.10-1.x86_64/build=/usr/src/debug/python38-3.8.10-1

    
-fdebug-prefix-map=/pub/devel/python/python38/python38-3.8.10-1.x86_64/src/Python-3.8.10=/usr/src/debug/python38-3.8.10-1

    -DCYTHON_CLINE_IN_TRACEBACK=0 -I/usr/include/libxml2 -Isrc
    -Isrc/lxml/includes -I/usr/include/python3.8 -c src/lxml/etree.c -o
    build/temp.cygwin-3.2.0-x86_64-3.8/src/lxml/etree.o -w
         src/lxml/etree.c:97:10: fatal error: Python.h: No such file or
    directory
            97 | #include "Python.h"
               |          ^~~~~~~~~~
         compilation terminated.
         Compile failed: command 'gcc' failed with exit status 1
         creating tmp
         cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c
    /tmp/xmlXPathInit4efcky6t.c -o tmp/xmlXPathInit4efcky6t.o
         cc tmp/xmlXPathInit4efcky6t.o -lxml2 -o a.out.exe
         error: command 'gcc' failed with exit status 1
         ----------------------------------------
    ERROR: Command errored out with exit status 1: /usr/bin/python -u -c
    'import io, os, sys, setuptools, tokenize; sys.argv[0] =
    
'"'"'/tmp/pip-install-mp64a75l/lxml_61e1128ed27f4063936a7a21e44c273e/setup.py'"'"';

    
__file__='"'"'/tmp/pip-install-mp64a75l/lxml_61e1128ed27f4063936a7a21e44c273e/setup.py'"'"';f

    = getattr(tokenize, '"'"'open'"'"', open)(__file__) if
    os.path.exists(__file__) else io.StringIO('"'"'from setuptools import
    setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"',
    '"'"'\n'"'"');f.close();exec(compile(code, __file__,
    '"'"'exec'"'"'))'
    install --record /tmp/pip-record-qafwouur/install-record.txt
    --single-version-externally-managed --compile --install-headers
    /usr/local/include/python3.8/lxml Check the logs for full command
    output.


-- Problem reports: https://cygwin.com/problems.html
    <https://cygwin.com/problems.html>
    FAQ: https://cygwin.com/faq/ <https://cygwin.com/faq/>
    Documentation: https://cygwin.com/docs.html
    <https://cygwin.com/docs.html>
    Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
    <https://cygwin.com/ml/#unsubscribe-simple>



--
Russell M. Van Tassell <russel...@gmail.com <mailto:russel...@gmail.com>>


--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to