First Time Contribution help needed

Hello Everyone!

I hope I won’t need to introduce myself again as I did so previously in the discourse and at the meeting yesterday. Given that I must submit a patch to be accepted as an official contributor for GSOC’23, “Support for C++” was the project in which I am most interested. Fortunately, I had already cloned and set up the entire fpm repository on my home computer.

So, if you could just bear with me, I’ve been trying my best to find something to contribute on, but honestly, it’s been incredibly difficult for me to understand everything that’s present on the repo (I mean when I look up into any particular file I can understand what the code is for but I can understand what does so many files as a whole trying to implement). Well on my way to dig through the issues I ended up here on this issue which I think I might be able to work on since the issue clearing requires text parsing of matrices but further again I’m really confused that whether is this issue still available to be assigned or not ? And if it open that do I need to code in C++ or fortran?

Honestly any help/suggestions would be help right now on this. Sorry and Thank you so much.

1 Like

Thanks, Kritika, I’ll review a few Fortran-lang projects over the weekend and post here a few good first issues to tackle.

2 Likes

@kritika_rag , you will notice the “Support for C++” Fortran-lang GSoC project primarily resolves around fpm: “Enabling fpm to compile C++ projects would make a whole number of projects available in the Fortran ecosystems, most importantly the LFortran compiler and its AST parser. This requires fpm to handle C++ headers and modules (source scanner) and being able to link Fortran and C++ correctly into executables.”.

Here is the listing of issues with fpm: will it be possible for you to review this list and work on submitting a PR around any one (or more) of them? That might be worth your time and attention.

1 Like

Thank you so much @milancurcic , I’m looking forward to contributing to those issues.

Hello @FortranFan I already had went through that list before asking for help here. I infact also tried to filter those issues according to the label ‘easy’ and “good first issue” but unfortunately wasn’t figure out much. Although I did found an issue which required text parsing related to multi dimensional matrices but I’m not sure whether I can/should work on it or not.

Hi @kritika_rag, I would focus on issues related to fpm ideally, but it can also be from any The Fortran Programming Language · GitHub repository.

2 Likes

@kritika_rag, in addition to what @gnikit wrote, consider also contributing a short tutorial to fpm documentation, since you’re interested in working on improving fpm.

You can see existing tutorials here:

https://fpm.fortran-lang.org/en/tutorial/index.html#tutorial

Perhaps your PR could be to contribute a short tutorial on an fpm feature that’s not covered already, or expand an existing tutorial.

The PR doesn’t have to be large, just a small but meaningful addition or fix that will help us understand what it would be like for us to work together.

3 Likes

@gnikit and @milancurcic thank you so much for your inputs, it was really helpful. I’ll be try to add ‘Hindi’ or ‘Polish’ translation to the docs if that’s okay to do so.

3 Likes

:+1: a good plan.

Hello Everyone again! I’m really sorry for taking so much of you time but I just ran into another issue and I need help with that.

So I was tring to install dependencies for fpm-docs and had been stuck at this part:

pip install -r requirements.txt

I’m gonna paste the complete output that I’m getting in my cmd (I’ve activated virtual environment there)

(venv) C:\Users\kriti\fpm-docs>pip install -r requirements.txt
Collecting sphinx
Using cached sphinx-6.1.3-py3-none-any.whl (3.0 MB)
Collecting sphinx-intl
Using cached sphinx_intl-2.1.0-py3-none-any.whl (12 kB)
Collecting sphinx-design
Using cached sphinx_design-0.3.0-py3-none-any.whl (2.2 MB)
Collecting sphinx-jinja
Using cached sphinx_jinja-2.0.2-py3-none-any.whl (4.4 kB)
Collecting sphinx-book-theme
Using cached sphinx_book_theme-1.0.0-py3-none-any.whl (400 kB)
Collecting sphinx-copybutton
Using cached sphinx_copybutton-0.5.1-py3-none-any.whl (13 kB)
Collecting ablog
Using cached ablog-0.10.33.post1-py3-none-any.whl (62 kB)
Collecting myst-parser
Downloading myst_parser-1.0.0-py3-none-any.whl (77 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.3/77.3 kB 859.9 kB/s eta 0:00:00
Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from sphinx->-r requirements.txt (line 1)) (2.0.1)
Requirement already satisfied: sphinxcontrib-applehelp in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from sphinx->-r requirements.txt (line 1)) (1.0.4)
Requirement already satisfied: sphinxcontrib-jsmath in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from sphinx->-r requirements.txt (line 1)) (1.0.1)
Requirement already satisfied: snowballstemmer>=2.0 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from sphinx->-r requirements.txt (line 1)) (2.2.0)
Requirement already satisfied: packaging>=21.0 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from sphinx->-r requirements.txt (line 1)) (23.0)
Collecting alabaster<0.8,>=0.7
Using cached alabaster-0.7.13-py3-none-any.whl (13 kB)
Requirement already satisfied: sphinxcontrib-qthelp in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from sphinx->-r requirements.txt (line 1)) (1.0.3)
Collecting babel>=2.9
Using cached Babel-2.12.1-py3-none-any.whl (10.1 MB)
Requirement already satisfied: Pygments>=2.13 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from sphinx->-r requirements.txt (line 1)) (2.14.0)
Collecting docutils<0.20,>=0.18
Using cached docutils-0.19-py3-none-any.whl (570 kB)
Collecting importlib-metadata>=4.8
Using cached importlib_metadata-6.0.0-py3-none-any.whl (21 kB)
Collecting Jinja2>=3.0
Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting requests>=2.25.0
Using cached requests-2.28.2-py3-none-any.whl (62 kB)
Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.5 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from sphinx->-r requirements.txt (line 1)) (1.1.5)
Requirement already satisfied: sphinxcontrib-devhelp in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from sphinx->-r requirements.txt (line 1)) (1.0.2)
Collecting imagesize>=1.3
Using cached imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB)
Collecting colorama>=0.4.5
Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting click
Using cached click-8.1.3-py3-none-any.whl (96 kB)
Requirement already satisfied: setuptools in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from sphinx-intl->-r requirements.txt (line 2)) (65.4.1)
Collecting sphinx
Using cached sphinx-5.3.0-py3-none-any.whl (3.2 MB)
Collecting pydata-sphinx-theme>=0.13.0
Using cached pydata_sphinx_theme-0.13.1-py3-none-any.whl (1.6 MB)
Collecting invoke>=1.6.0
Using cached invoke-2.0.0-py3-none-any.whl (162 kB)
Requirement already satisfied: python-dateutil>=2.8.0 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from ablog->-r requirements.txt (line 7)) (2.8.2)
Requirement already satisfied: watchdog>=2.0.0 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from ablog->-r requirements.txt (line 7)) (2.3.1)
Collecting feedgen>=0.9.0
Using cached feedgen-0.9.0-py2.py3-none-any.whl
Collecting mdit-py-plugins~=0.3.4
Using cached mdit_py_plugins-0.3.5-py3-none-any.whl (52 kB)
Requirement already satisfied: pyyaml in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from myst-parser->-r requirements.txt (line 8)) (6.0)
Requirement already satisfied: markdown-it-py<3.0.0,>=1.0.0 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from myst-parser->-r requirements.txt (line 8)) (2.2.0)
Collecting lxml
Using cached lxml-4.9.2.tar.gz (3.7 MB)
Preparing metadata (setup.py) … done
Requirement already satisfied: zipp>=0.5 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from importlib-metadata>=4.8->sphinx->-r requirements.txt (line 1)) (3.15.0)
Requirement already satisfied: MarkupSafe>=2.0 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from Jinja2>=3.0->sphinx->-r requirements.txt (line 1)) (2.1.2)
Requirement already satisfied: mdurl~=0.1 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from markdown-it-py<3.0.0,>=1.0.0->myst-parser->-r requirements.txt (line 8)) (0.1.2)
Collecting beautifulsoup4
Using cached beautifulsoup4-4.11.2-py3-none-any.whl (129 kB)
Collecting accessible-pygments
Using cached accessible_pygments-0.0.3-py2.py3-none-any.whl (30 kB)
Requirement already satisfied: six>=1.5 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from python-dateutil>=2.8.0->ablog->-r requirements.txt (line 7)) (1.16.0)
Collecting charset-normalizer<4,>=2
Using cached charset_normalizer-3.1.0-py3-none-any.whl (46 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Collecting idna<4,>=2.5
Using cached idna-3.4-py3-none-any.whl (61 kB)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from requests>=2.25.0->sphinx->-r requirements.txt (line 1)) (1.26.14)
Requirement already satisfied: soupsieve>1.2 in c:\users\kriti\fpm-docs\venv\lib\python3.9\site-packages (from beautifulsoup4->pydata-sphinx-theme>=0.13.0->sphinx-book-theme->-r requirements.txt (line 5)) (2.4)
Building wheels for collected packages: lxml
Building wheel for lxml (setup.py) … error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [102 lines of output]
Building lxml version 4.9.2.
Building without Cython.
Building against pre-built libxml2 andl libxslt libraries
running bdist_wheel
running build
running build_py
creating build
creating build\lib.mingw_x86_64-cpython-39
creating build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\builder.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\cssselect.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\doctestcompare.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\ElementInclude.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\pyclasslookup.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\sax.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\usedoctest.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml_elementpath.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml_init_.py → build\lib.mingw_x86_64-cpython-39\lxml
creating build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes_init_.py → build\lib.mingw_x86_64-cpython-39\lxml\includes
creating build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\builder.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\clean.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\defs.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\diff.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\ElementSoup.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\formfill.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\html5parser.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\soupparser.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\usedoctest.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html_diffcommand.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html_html5builder.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html_setmixin.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html_init_.py → build\lib.mingw_x86_64-cpython-39\lxml\html
creating build\lib.mingw_x86_64-cpython-39\lxml\isoschematron
copying src\lxml\isoschematron_init_.py → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron
copying src\lxml\etree.h → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\etree_api.h → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\lxml.etree.h → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\lxml.etree_api.h → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\etree.pyx → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\objectify.pyx → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\apihelpers.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\classlookup.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\cleanup.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\debug.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\docloader.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\dtd.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\extensions.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\iterparse.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\nsclasses.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\objectpath.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\parser.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\parsertarget.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\proxy.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\public-api.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\readonlytree.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\relaxng.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\saxparser.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\schematron.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\serializer.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xinclude.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xmlerror.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xmlid.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xmlschema.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xpath.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xslt.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xsltext.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\includes\c14n.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\config.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\dtdvalid.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\etreepublic.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\htmlparser.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\relaxng.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\schematron.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\tree.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\uri.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xinclude.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xmlerror.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xmlparser.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xmlschema.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xpath.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xslt.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes_init_.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\etree_defs.h → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\lxml-version.h → build\lib.mingw_x86_64-cpython-39\lxml\includes
creating build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources
creating build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\rng
copying src\lxml\isoschematron\resources\rng\iso-schematron.rng → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\rng
creating build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl
copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl
copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl
creating build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_skeleton_for_xslt1.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
running build_ext
building ‘lxml.etree’ extension
error: --plat-name must be one of (‘win32’, ‘win-amd64’, ‘win-arm32’, ‘win-arm64’)
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for lxml
Running setup.py clean for lxml
Failed to build lxml
Installing collected packages: lxml, Jinja2, invoke, importlib-metadata, imagesize, idna, docutils, colorama, charset-normalizer, certifi, beautifulsoup4, babel, alabaster, accessible-pygments, requests, mdit-py-plugins, feedgen, click, sphinx, sphinx-jinja, sphinx-intl, sphinx-design, sphinx-copybutton, pydata-sphinx-theme, myst-parser, ablog, sphinx-book-theme
Running setup.py install for lxml … error
error: subprocess-exited-with-error
× Running setup.py install for lxml did not run successfully.
│ exit code: 1
╰─> [104 lines of output]
Building lxml version 4.9.2.
Building without Cython.
Building against pre-built libxml2 andl libxslt libraries
running install
C:\Users\kriti\fpm-docs\venv\lib\python3.9\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build
running build_py
creating build
creating build\lib.mingw_x86_64-cpython-39
creating build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\builder.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\cssselect.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\doctestcompare.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\ElementInclude.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\pyclasslookup.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\sax.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\usedoctest.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml_elementpath.py → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml_init_.py → build\lib.mingw_x86_64-cpython-39\lxml
creating build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes_init_.py → build\lib.mingw_x86_64-cpython-39\lxml\includes
creating build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\builder.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\clean.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\defs.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\diff.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\ElementSoup.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\formfill.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\html5parser.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\soupparser.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html\usedoctest.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html_diffcommand.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html_html5builder.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html_setmixin.py → build\lib.mingw_x86_64-cpython-39\lxml\html
copying src\lxml\html_init_.py → build\lib.mingw_x86_64-cpython-39\lxml\html
creating build\lib.mingw_x86_64-cpython-39\lxml\isoschematron
copying src\lxml\isoschematron_init_.py → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron
copying src\lxml\etree.h → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\etree_api.h → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\lxml.etree.h → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\lxml.etree_api.h → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\etree.pyx → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\objectify.pyx → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\apihelpers.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\classlookup.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\cleanup.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\debug.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\docloader.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\dtd.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\extensions.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\iterparse.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\nsclasses.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\objectpath.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\parser.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\parsertarget.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\proxy.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\public-api.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\readonlytree.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\relaxng.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\saxparser.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\schematron.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\serializer.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xinclude.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xmlerror.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xmlid.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xmlschema.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xpath.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xslt.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\xsltext.pxi → build\lib.mingw_x86_64-cpython-39\lxml
copying src\lxml\includes\c14n.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\config.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\dtdvalid.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\etreepublic.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\htmlparser.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\relaxng.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\schematron.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\tree.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\uri.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xinclude.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xmlerror.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xmlparser.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xmlschema.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xpath.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\xslt.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes_init_.pxd → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\etree_defs.h → build\lib.mingw_x86_64-cpython-39\lxml\includes
copying src\lxml\includes\lxml-version.h → build\lib.mingw_x86_64-cpython-39\lxml\includes
creating build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources
creating build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\rng
copying src\lxml\isoschematron\resources\rng\iso-schematron.rng → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\rng
creating build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl
copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl
copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl
creating build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_skeleton_for_xslt1.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt → build\lib.mingw_x86_64-cpython-39\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
running build_ext
building ‘lxml.etree’ extension
error: --plat-name must be one of (‘win32’, ‘win-amd64’, ‘win-arm32’, ‘win-arm64’)
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> lxml
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

I actually tried to take help from these sites :
https://lxml.de/installation.html
https://stackoverflow.com/questions/29440482/how-to-install-lxml-on-windows
but honestly nothing worked out for me and I had been stuck at this point for like more than 3hrs straight so any help would be a blessing.

Also one of the suggestions from the stackoverflow discussion was to directly install lxml file from Archived: Python Extension Packages for Windows - Christoph Gohlke but since there are so many versions of it that I can’t figure out which one to install
Current Python version is 3.9 and 64-bit operating system

Hi @kritika_rag, don’t know the exact issue that you are having, but I have had similar issues in the past that I have managed to overcome by:

  • I no longer use pipenv but conda envs … Honestly, conda is your best friend!! Free Download | Anaconda and if you also use WSL you can install miniconda within the WSL.
  • When installing, sometimes the builds require a proper compiler available, this I realised with similar errors to yours :

If you get conda, install also

conda config --add channels conda-forge
conda install -c conda-forge cxx-compiler

note: even if you can’t do conda install for a package you can always use python -m pip install as well

Thank you so much @hkvzjal I’m going to setup anaconda envs on my laptopn and for
python -m pip install, yeah it does works normally but it didn’t worked in the issue that I’ve raised.

1 Like

what I meant here is once you start working within conda, for packages already available in conda channels you use conda install but if there is a python package not available through the conda channels but only in pypi.org (when you do pip install you are downloading from here) you can of course use pip install. And the warning is that if you do “only” pip, you might invoke the default python installation in your path. so in order to be sure you install within the conda environment (either the (base) env or any custom env you create, prefer the command python -m pip install to be sure you are using the one from conda and not the one in your Windows path.

If you are there, and have not yet do so, get also VS Code as your editor :wink: . Now, when you open a project, look for the Anaconda prompt, cd to your directory, code . that way the ‘Terminal’ from VS Code will be directly on the (base) environment from conda.

Happy coding

1 Like

Ohh okay got it. Thank you so much again. I just finished installing Anaconda so let me just try it out and will let you know how it goes.

1 Like

Ohh thanks for this tip I usually use VS Code only for coding, it would be really comfortable for me to continue working in it for this also.

1 Like

@hkvzjal Hi tried using the anaconda envs bt still facing the same issue :frowning:

Seems there are issues with lmxl in windows, even people from chatGPT reported something similar 'lxml' dependency is broken on Windows · Issue #53 · acheong08/ChatGPT · GitHub

Try out something:
In the requirements.txt of the package you are trying to install, remove the dependency to lmxl

Re-do the installation of lmxl in a stand-alone manner as you already tried, then come back to installing your package.

1 Like

If the issue persists (since it seems a problem with windows compatibility), and you would like to advance regardless of it being native windows compatible I would advise that you try out with Linux under WSL. If so, here my advise:

  1. You should have the “Windows Terminal”, when you open it, it will be in “powershell prompt” mode
  2. Get yourself an Ubuntu WSL
wsl --install --distribution Ubuntu-20.04

You can also use the latest release Ubuntu-22.04 (but some programs might not be compatible yet)

  1. Once you setup your WSL with your user name, etc, get Miniconda Miniconda — conda documentation
wget https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-x86_64.sh

From the previous link you can also select a different version with more recent python up to 3.10 if you’d like

  1. if the installation doesn’t start,
. /Miniconda3-py39_23.1.0-1-Linux-x86_64.sh

This should at the end activate a (base) env in your Ubuntu shell

  1. Get some basic tools:
conda config --add channels conda-forge
conda install -c conda-forge make
conda install -c conda-forge cmake
conda install -c conda-forge cxx-compiler
conda install -c conda-forge gcc
conda install -c conda-forge gfortran
conda install -c conda-forge gxx

With VS Code, on the left-bottom corner you should see a green button, it will allow you to “Reopen in WSL” so that all your dev experience remains native, but your Terminal and debugging will use the Linux kernels behind the scene.

Go ahead and retry the standard installations of the package in the WSL Terminal

1 Like

@hkvzjal Thank you so much for time:
Finally things are working using Ubuntu env

Although these things didn’t worked for me exactly in the way you have mentioned instead I again had to go through dozens of online resources to get things working. Here is what exactly worked for me:

$ sudo apt-get install curl

$ curl -O https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-x86_64.sh

$ bash Miniconda3-py39_23.1.0-1-Linux-x86_64.sh

#Press Enter and Yes for all questions
#Restart the Ubuntu shell

Thank you so much again for you time and help. I’m pretty sure I’m going to come up with some issue again since just setting up the environment took me 2 days(it’s 4:40 am in India right now and I literally finished setting up things 10 mins ago) so I’m pretty sure further things aren’t going to be easy for me :slight_smile:

I had an another question regarding creating a PR request, since I am working on adding Hindi translation to the docs but there isn’t any open issue regarding it so do I need to create a new issue for it and then proceed to creating PR after a moderator assigns the issue to me or can I simply just create a PR directly?