mkdocs: Install of mkdocs fails with nltk 3.5
Hi,
First of all, thank you for mkdocs. We’re using this in our company and are very happy to have it.
I noticed that the installation of mkdocs started failing for us yesterday. After some investigation I found out that the nltk lib had a version bump (3.5) yesterday and that’s were it goes wrong.
I was able to use the previous nltk version (3.4.5) by adding it directly to our ci file
pages:
image: python:3.7-alpine
stage: 🥾 Bootstrap
script:
- pip install nltk==3.4.5
- pip install mkdocs
- pip install mkdocs-material
- mkdocs build
This solves the issue for us.
I am not really used to python and its ecosystem, so perhaps I am overseeing an actual “fix”.
But if this is a really issue, I guess the 3.5 nltk version should be blacklisted from the install?
Output of the error
$ pip install mkdocs
18 Collecting mkdocs
19 Downloading mkdocs-1.1-py2.py3-none-any.whl (6.4 MB)
20 Collecting click>=3.3
21 Downloading click-7.1.1-py2.py3-none-any.whl (82 kB)
22 Collecting Jinja2>=2.10.1
23 Downloading Jinja2-2.11.1-py2.py3-none-any.whl (126 kB)
24 Collecting Markdown>=3.2.1
25 Downloading Markdown-3.2.1-py2.py3-none-any.whl (88 kB)
26 Collecting PyYAML>=3.10
27 Downloading PyYAML-5.3.1.tar.gz (269 kB)
28 Collecting tornado>=5.0
29 Downloading tornado-6.0.4.tar.gz (496 kB)
30 Collecting livereload>=2.5.1
31 Downloading livereload-2.6.1-py2.py3-none-any.whl (23 kB)
32 Collecting lunr[languages]==0.5.6
33 Downloading lunr-0.5.6-py2.py3-none-any.whl (36 kB)
34 Collecting MarkupSafe>=0.23
35 Downloading MarkupSafe-1.1.1.tar.gz (19 kB)
36 Requirement already satisfied: setuptools>=36 in /usr/local/lib/python3.8/site-packages (from Markdown>=3.2.1->mkdocs) (46.1.1)
37 Collecting six
38 Downloading six-1.14.0-py2.py3-none-any.whl (10 kB)
39 Collecting future>=0.16.0
40 Downloading future-0.18.2.tar.gz (829 kB)
41 Collecting nltk>=3.2.5; extra == "languages"
42 Downloading nltk-3.5.zip (1.4 MB)
43 Collecting joblib
44 Downloading joblib-0.14.1-py2.py3-none-any.whl (294 kB)
45 Collecting regex
46 Downloading regex-2020.4.4.tar.gz (695 kB)
47 Collecting tqdm
48 Downloading tqdm-4.45.0-py2.py3-none-any.whl (60 kB)
49 Building wheels for collected packages: PyYAML, tornado, MarkupSafe, future, nltk, regex
50 Building wheel for PyYAML (setup.py): started
51 Building wheel for PyYAML (setup.py): finished with status 'done'
52 Created wheel for PyYAML: filename=PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl size=44617 sha256=e51f74894350a12a20b5ed28d79e6bf74a837020d884ed06a1e0a0ca03ec28fb
53 Stored in directory: /root/.cache/pip/wheels/13/90/db/290ab3a34f2ef0b5a0f89235dc2d40fea83e77de84ed2dc05c
54 Building wheel for tornado (setup.py): started
55 Building wheel for tornado (setup.py): finished with status 'done'
56 Created wheel for tornado: filename=tornado-6.0.4-cp38-cp38-linux_x86_64.whl size=415149 sha256=5b834e80e999d01b7fb8a67d6ccbf419fae7fb0920b9a8ddcf2d0fade7357613
57 Stored in directory: /root/.cache/pip/wheels/88/79/e5/598ba17e85eccf2626eab62e4ee8452895636cd542650d450d
58 Building wheel for MarkupSafe (setup.py): started
59 Building wheel for MarkupSafe (setup.py): finished with status 'done'
60 Created wheel for MarkupSafe: filename=MarkupSafe-1.1.1-py3-none-any.whl size=12629 sha256=a03aedf2140733fd4e1c3d47f1ffa26335ddd2a349b60e108ceb84e48612998b
61 Stored in directory: /root/.cache/pip/wheels/0c/61/d6/4db4f4c28254856e82305fdb1f752ed7f8482e54c384d8cb0e
62 Building wheel for future (setup.py): started
63 Building wheel for future (setup.py): finished with status 'done'
64 Created wheel for future: filename=future-0.18.2-py3-none-any.whl size=491058 sha256=6d781ad44d7230964ab437b2036b2b382186d0083039960587eeb76d1eb3f93b
65 Stored in directory: /root/.cache/pip/wheels/8e/70/28/3d6ccd6e315f65f245da085482a2e1c7d14b90b30f239e2cf4
66 Building wheel for nltk (setup.py): started
67 Building wheel for nltk (setup.py): finished with status 'done'
68 Created wheel for nltk: filename=nltk-3.5-py3-none-any.whl size=1434676 sha256=1f4703ad06f227692f94fed6c4564f56f36b982f86a502fab5af0a2e290f57b6
69 Stored in directory: /root/.cache/pip/wheels/ff/d5/7b/f1fb4e1e1603b2f01c2424dd60fbcc50c12ef918bafc44b155
70 Building wheel for regex (setup.py): started
71 Building wheel for regex (setup.py): finished with status 'error'
72 ERROR: Command errored out with exit status 1:
73 command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-7xy4ih14/regex/setup.py'"'"'; __file__='"'"'/tmp/pip-install-7xy4ih14/regex/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-crjf4cl9
74 cwd: /tmp/pip-install-7xy4ih14/regex/
75 Complete output (17 lines):
76 running bdist_wheel
77 running build
78 running build_py
79 creating build
80 creating build/lib.linux-x86_64-3.8
81 creating build/lib.linux-x86_64-3.8/regex
82 copying regex_3/__init__.py -> build/lib.linux-x86_64-3.8/regex
83 copying regex_3/regex.py -> build/lib.linux-x86_64-3.8/regex
84 copying regex_3/_regex_core.py -> build/lib.linux-x86_64-3.8/regex
85 copying regex_3/test_regex.py -> build/lib.linux-x86_64-3.8/regex
86 running build_ext
87 building 'regex._regex' extension
88 creating build/temp.linux-x86_64-3.8
89 creating build/temp.linux-x86_64-3.8/regex_3
90 gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.8 -c regex_3/_regex.c -o build/temp.linux-x86_64-3.8/regex_3/_regex.o
91 unable to execute 'gcc': No such file or directory
92 error: command 'gcc' failed with exit status 1
93 ----------------------------------------
94 ERROR: Failed building wheel for regex
95 Running setup.py clean for regex
96 Successfully built PyYAML tornado MarkupSafe future nltk
97 Failed to build regex
98 Installing collected packages: click, MarkupSafe, Jinja2, Markdown, PyYAML, tornado, six, livereload, future, joblib, regex, tqdm, nltk, lunr, mkdocs
99 Running setup.py install for regex: started
100 Running setup.py install for regex: finished with status 'error'
101 ERROR: Command errored out with exit status 1:
102 command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-7xy4ih14/regex/setup.py'"'"'; __file__='"'"'/tmp/pip-install-7xy4ih14/regex/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-begr9ft9/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.8/regex
103 cwd: /tmp/pip-install-7xy4ih14/regex/
104 Complete output (17 lines):
105 running install
106 running build
107 running build_py
108 creating build
109 creating build/lib.linux-x86_64-3.8
110 creating build/lib.linux-x86_64-3.8/regex
111 copying regex_3/__init__.py -> build/lib.linux-x86_64-3.8/regex
112 copying regex_3/regex.py -> build/lib.linux-x86_64-3.8/regex
113 copying regex_3/_regex_core.py -> build/lib.linux-x86_64-3.8/regex
114 copying regex_3/test_regex.py -> build/lib.linux-x86_64-3.8/regex
115 running build_ext
116 building 'regex._regex' extension
117 creating build/temp.linux-x86_64-3.8
118 creating build/temp.linux-x86_64-3.8/regex_3
119 gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.8 -c regex_3/_regex.c -o build/temp.linux-x86_64-3.8/regex_3/_regex.o
120 unable to execute 'gcc': No such file or directory
121 error: command 'gcc' failed with exit status 1
122 ----------------------------------------
123 ERROR: Command errored out with exit status 1: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-7xy4ih14/regex/setup.py'"'"'; __file__='"'"'/tmp/pip-install-7xy4ih14/regex/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-begr9ft9/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.8/regex Check the logs for full command output.
127 ERROR: Job failed: exit code 1
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 15 (9 by maintainers)
Commits related to this issue
- Set dependency to `lunr[languages]==0.5.8`. Lunr.py version 0.5.8 maintains compatability with Lunr.js 2.3.8, but restricts its dependnecy to nltk>=3.2.5,<3.5, which avoids installation issues on som... — committed to waylan/mkdocs by waylan 4 years ago
- Set dependency to `lunr[languages]==0.5.8`. Lunr.py version 0.5.8 maintains compatability with Lunr.js 2.3.8, but restricts its dependnecy to nltk>=3.2.5,<3.5, which avoids installation issues on som... — committed to mkdocs/mkdocs by waylan 4 years ago
I do indeed think that would be a solution.
I understand that it’s not directly your library that’s breaking something. But by using external libraries (that can break) you can’t just point to them and wait for them to fix possible issues.
@waylan
That’s not true because we had the same problem. See:
I just ran into this when preparing the latest release for
mkdocs-material. This is how I fixed it.