Closed sbidoul closed 1 year ago
py -3.9 -m pip install -U pillow
fails, includes these messages:
ERROR: Failed building wheel for pillow
Running setup.py clean for pillow
Failed to build pillow
DEPRECATION: Could not build wheels for pillow which do not use PEP 517. pip will fall back to legacy 'setup.py install' for these. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
Installing collected packages: pillow
Running setup.py install for pillow ... error
ERROR: Command errored out with exit status 1:
using:
> py -3.9 -m pip --version
pip 20.2 from C:\Users\Doug\AppData\Local\Programs\Python\Python39\lib\site-packages\pip (python 3.9)
> py -3.9
Python 3.9.0b5 (tags/v3.9.0b5:8ad7d50, Jul 20 2020, 18:35:09) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
On windows 10 pro 1909, full patched as of 2020-07-30.
This has been reported as https://github.com/python-pillow/Pillow/issues/4827
@djhenderson Your issue is not related. The setup.py install
fallback deprecation simply shows a warning, and would not affect the error you see.
Thanks for clearly providing all the relevant information here @djhenderson. I think the issue tracker for Pillow (where you've filed an issue) is the correct place to get help with your issue. :)
how do you do this in Mac ?
I'm getting following error. Failed to build pyaudio DEPRECATION: Could not build wheels for pyaudio which do not use PEP 517. pip will fall back to legacy 'setup.py install' for these. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
I was surprised to see so many link-backs for a simple deprecation message, and even downvotes. And then I realised each of the linked issues simply contains an error message of someone failing to build an arbitrary package from source with pip install
(which would contain a link to this issue), and people don’t realise the deprecation message has nothing to do with it.
Maybe we should have only show the message if the setup.py install
command succeeds instead of unconditionally. This would save us a lot of confused users blaming this issue for their problems.
@uranusjr I realised the same yesterday. With the current deprecation message we risk loosing useful reports in the noise. See #8752 for a possible better approach.
@googleworm if the installation of pyaudio succeeded after displaying the deprecation warning, then please provide the detailed log here. If it ended withRunning setup.py install for pyaudio ... error
followed by a compilation error log, then your problem is not related to this issue and you should consult the pyaudio installation instructions for help.
@uranusjr @sbidoul I don't know if this is helpful, but for some reason, I received a link to this issue when my machine failed to build wheels for installing the regex package. I doubt this issue has anything to do with it, is it?
I am fairly new to git and github so kindly excuse if my comment is not very helpful. Thank you.
Here is my the complete error log I recieved:
(base) Aditya's-MacBook-Pro: aditya$ pip install regex
Collecting regex
Using cached regex-2020.7.14.tar.gz (690 kB)
Building wheels for collected packages: regex
Building wheel for regex (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /Users/apple/opt/anaconda3/envs/test1/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-install-3ss2v4zg/regex/setup.py'"'"'; __file__='"'"'/private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-install-3ss2v4zg/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 /private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-wheel-n2v32c8x
cwd: /private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-install-3ss2v4zg/regex/
Complete output (17 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.9-x86_64-3.8
creating build/lib.macosx-10.9-x86_64-3.8/regex
copying regex_3/__init__.py -> build/lib.macosx-10.9-x86_64-3.8/regex
copying regex_3/regex.py -> build/lib.macosx-10.9-x86_64-3.8/regex
copying regex_3/_regex_core.py -> build/lib.macosx-10.9-x86_64-3.8/regex
copying regex_3/test_regex.py -> build/lib.macosx-10.9-x86_64-3.8/regex
running build_ext
building 'regex._regex' extension
creating build/temp.macosx-10.9-x86_64-3.8
creating build/temp.macosx-10.9-x86_64-3.8/regex_3
gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/apple/opt/anaconda3/envs/test1/include -arch x86_64 -I/Users/apple/opt/anaconda3/envs/test1/include -arch x86_64 -I/Users/apple/opt/anaconda3/envs/test1/include/python3.8 -c regex_3/_regex.c -o build/temp.macosx-10.9-x86_64-3.8/regex_3/_regex.o
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for regex
Running setup.py clean for regex
Failed to build regex
DEPRECATION: Could not build wheels for regex which do not use PEP 517. pip will fall back to legacy 'setup.py install' for these. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
Installing collected packages: regex
Running setup.py install for regex ... error
ERROR: Command errored out with exit status 1:
command: /Users/apple/opt/anaconda3/envs/test1/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-install-3ss2v4zg/regex/setup.py'"'"'; __file__='"'"'/private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-install-3ss2v4zg/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 /private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-record-fm1zm8k0/install-record.txt --single-version-externally-managed --compile --install-headers /Users/apple/opt/anaconda3/envs/test1/include/python3.8/regex
cwd: /private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-install-3ss2v4zg/regex/
Complete output (17 lines):
running install
running build
running build_py
creating build
creating build/lib.macosx-10.9-x86_64-3.8
creating build/lib.macosx-10.9-x86_64-3.8/regex
copying regex_3/__init__.py -> build/lib.macosx-10.9-x86_64-3.8/regex
copying regex_3/regex.py -> build/lib.macosx-10.9-x86_64-3.8/regex
copying regex_3/_regex_core.py -> build/lib.macosx-10.9-x86_64-3.8/regex
copying regex_3/test_regex.py -> build/lib.macosx-10.9-x86_64-3.8/regex
running build_ext
building 'regex._regex' extension
creating build/temp.macosx-10.9-x86_64-3.8
creating build/temp.macosx-10.9-x86_64-3.8/regex_3
gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/apple/opt/anaconda3/envs/test1/include -arch x86_64 -I/Users/apple/opt/anaconda3/envs/test1/include -arch x86_64 -I/Users/apple/opt/anaconda3/envs/test1/include/python3.8 -c regex_3/_regex.c -o build/temp.macosx-10.9-x86_64-3.8/regex_3/_regex.o
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /Users/apple/opt/anaconda3/envs/test1/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-install-3ss2v4zg/regex/setup.py'"'"'; __file__='"'"'/private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-install-3ss2v4zg/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 /private/var/folders/4c/_r8vg69s4bb61j6syx4sdj900000gn/T/pip-record-fm1zm8k0/install-record.txt --single-version-externally-managed --compile --install-headers /Users/apple/opt/anaconda3/envs/test1/include/python3.8/regex Check the logs for full command output.
Also, please let me know if you could possibly help me with this issue. Thank you.
@adityagarg7 as you can see the compilation error is the same for Building wheel for regex
and Running setup.py install for regex
so you need to investigate your setup for compiling python modules with C code. So if you don't mind I'll mark your comments as off-topic to keep this issue focused. That said, your confusion is understandable and we are working to clarify the deprecation warning.
Windows 10, the same error with sqlcipher3
$ pip install pysqlcipher3
Collecting pysqlcipher3
Using cached pysqlcipher3-1.0.3.tar.gz (100 kB)
Building wheels for collected packages: pysqlcipher3
Building wheel for pysqlcipher3 (setup.py): started
Building wheel for pysqlcipher3 (setup.py): finished with status 'done'
WARNING: Legacy build of wheel for 'pysqlcipher3' created no files.
Command arguments: 'c:\sites\sylwester.tech\api\venv\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Public\\Documents\\Wondershare\\Creato rTemp\\pip-install-r8ub57sq\\pysqlcipher3\\setup.py'"'"'; __file__='"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-r8ub57sq\\pysqlcipher3\\setup.py'"'"';f=geta ttr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\Publ ic\Documents\Wondershare\CreatorTemp\pip-wheel-1m4gkydz'
Command output: [use --verbose to show]
Running setup.py clean for pysqlcipher3
Failed to build pysqlcipher3
DEPRECATION: Could not build wheels for pysqlcipher3 which do not use PEP 517. pip will fall back to legacy 'setup.py install' for these. pip 21.0 will remove support for this function ality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
Installing collected packages: pysqlcipher3
Running setup.py install for pysqlcipher3: started
Running setup.py install for pysqlcipher3: finished with status 'done'
Successfully installed pysqlcipher3
(venv)
@sylwesterdigital We need to understand why setup.py bdist_wheel
for this package does not generate a wheel. Could you try again with --verbose
, and also run pip list
after the installation command?
$ pip install --verbose pysqlcipher3
Using pip 20.2.2 from c:\users\flaboy\appdata\local\programs\python\python38\lib\site-packages\pip (python 3.8)
Non-user install because site-packages writeable
Created temporary directory: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-ephem-wheel-cache-ikdirft5
Created temporary directory: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-req-tracker-21e96s63
Initialized build tracking at C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-req-tracker-21e96s63
Created build tracker: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-req-tracker-21e96s63
Entered build tracker: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-req-tracker-21e96s63
Created temporary directory: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-enu1m14b
1 location(s) to search for versions of pysqlcipher3:
* https://pypi.org/simple/pysqlcipher3/
Fetching project page and analyzing links: https://pypi.org/simple/pysqlcipher3/
Getting page https://pypi.org/simple/pysqlcipher3/
Found index url https://pypi.org/simple
Looking up "https://pypi.org/simple/pysqlcipher3/" in the cache
Request header has "max_age" as 0, cache bypassed
Starting new HTTPS connection (1): pypi.org:443
https://pypi.org:443 "GET /simple/pysqlcipher3/ HTTP/1.1" 304 0
Found link https://files.pythonhosted.org/packages/a4/06/1d56bdec3129eff6dd54323d249784ccd90ce03c8cae7870d45e434bae77/pysqlcipher3-1.0.3.tar.gz#sha256=694e5bbb6ece8a064bd55f261e54b9ffbb3af1784afdc4dce4948a0251a8a430 (from https://pypi.org/simple/pysqlcipher3/), version: 1.0.3
Given no hashes to check 1 links for project 'pysqlcipher3': discarding no candidates
Using version 1.0.3 (newest of versions: 1.0.3)
Collecting pysqlcipher3
Created temporary directory: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-unpack-4ms5c69f
Looking up "https://files.pythonhosted.org/packages/a4/06/1d56bdec3129eff6dd54323d249784ccd90ce03c8cae7870d45e434bae77/pysqlcipher3-1.0.3.tar.gz" in the cache
Current age based on date: 20598953
Ignoring unknown cache-control directive: immutable
Freshness lifetime from max-age: 365000000
The response is "fresh", returning cached response
365000000 > 20598953
Using cached pysqlcipher3-1.0.3.tar.gz (100 kB)
Added pysqlcipher3 from https://files.pythonhosted.org/packages/a4/06/1d56bdec3129eff6dd54323d249784ccd90ce03c8cae7870d45e434bae77/pysqlcipher3-1.0.3.tar.gz#sha256=694e5bbb6ece8a064bd55f261e54b9ffbb3af1784afdc4dce4948a0251a8a430 to build tracker 'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-req-tracker-21e96s63'
Running setup.py (path:C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-enu1m14b\pysqlcipher3\setup.py) egg_info for package pysqlcipher3
Created temporary directory: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-pip-egg-info-9ai39d2m
Running command python setup.py egg_info
running egg_info
creating C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-pip-egg-info-9ai39d2m\pysqlcipher3.egg-info
writing C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-pip-egg-info-9ai39d2m\pysqlcipher3.egg-info\PKG-INFO
writing dependency_links to C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-pip-egg-info-9ai39d2m\pysqlcipher3.egg-info\dependency_links.txt
writing top-level names to C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-pip-egg-info-9ai39d2m\pysqlcipher3.egg-info\top_level.txt
writing manifest file 'C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-pip-egg-info-9ai39d2m\pysqlcipher3.egg-info\SOURCES.txt'
reading manifest file 'C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-pip-egg-info-9ai39d2m\pysqlcipher3.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching '*~' found anywhere in distribution
warning: no previously-included files matching '*.pyc' found anywhere in distribution
writing manifest file 'C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-pip-egg-info-9ai39d2m\pysqlcipher3.egg-info\SOURCES.txt'
Source in c:\users\public\documents\wondershare\creatortemp\pip-install-enu1m14b\pysqlcipher3 has version 1.0.3, which satisfies requirement pysqlcipher3 from https://files.pythonhosted.org/packages/a4/06/1d56bdec3129eff6dd54323d249784ccd90ce03c8cae7870d45e434bae77/pysqlcipher3-1.0.3.tar.gz#sha256=694e5bbb6ece8a064bd55f261e54b9ffbb3af1784afdc4dce4948a0251a8a430
Removed pysqlcipher3 from https://files.pythonhosted.org/packages/a4/06/1d56bdec3129eff6dd54323d249784ccd90ce03c8cae7870d45e434bae77/pysqlcipher3-1.0.3.tar.gz#sha256=694e5bbb6ece8a064bd55f261e54b9ffbb3af1784afdc4dce4948a0251a8a430 from build tracker 'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-req-tracker-21e96s63'
Building wheels for collected packages: pysqlcipher3
Created temporary directory: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-wheel-3r_61g6i
Building wheel for pysqlcipher3 (setup.py): started
Destination directory: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-wheel-3r_61g6i
Running command 'c:\users\flaboy\appdata\local\programs\python\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-enu1m14b\\pysqlcipher3\\setup.py'"'"'; __file__='"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-enu1m14b\\pysqlcipher3\\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 'C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-wheel-3r_61g6i'
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.8
creating build\lib.win-amd64-3.8\pysqlcipher3
copying lib\dbapi2.py -> build\lib.win-amd64-3.8\pysqlcipher3
copying lib\dump.py -> build\lib.win-amd64-3.8\pysqlcipher3
copying lib\__init__.py -> build\lib.win-amd64-3.8\pysqlcipher3
creating build\lib.win-amd64-3.8\pysqlcipher3\test
copying lib\test\__init__.py -> build\lib.win-amd64-3.8\pysqlcipher3\test
creating build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\dbapi.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\dump.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\factory.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\hooks.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\regression.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\sqlcipher.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\transactions.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\types.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\userfunctions.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\__init__.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
running build_ext
Builds a C extension linking against libsqlcipher library
building 'pysqlcipher3._sqlite3' extension
creating build\temp.win-amd64-3.8
creating build\temp.win-amd64-3.8\Release
creating build\temp.win-amd64-3.8\Release\src
creating build\temp.win-amd64-3.8\Release\src\python3
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DMODULE_NAME=\"pysqlcipher3.dbapi2\" -Ic:\users\flaboy\appdata\local\programs\python\python38\include -Ic:\users\flaboy\appdata\local\programs\python\python38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /Tcsrc\python3\module.c /Fobuild\temp.win-amd64-3.8\Release\src\python3\module.obj
module.c
C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-enu1m14b\pysqlcipher3\src\python3\connection.h(33): fatal error C1083: Cannot open include file: 'sqlcipher/sqlite3.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.27.29110\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
WARNING: Legacy build of wheel for 'pysqlcipher3' created no files.
Command arguments: 'c:\users\flaboy\appdata\local\programs\python\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-enu1m14b\\pysqlcipher3\\setup.py'"'"'; __file__='"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-enu1m14b\\pysqlcipher3\\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 'C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-wheel-3r_61g6i'
Command output:
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.8
creating build\lib.win-amd64-3.8\pysqlcipher3
copying lib\dbapi2.py -> build\lib.win-amd64-3.8\pysqlcipher3
copying lib\dump.py -> build\lib.win-amd64-3.8\pysqlcipher3
copying lib\__init__.py -> build\lib.win-amd64-3.8\pysqlcipher3
creating build\lib.win-amd64-3.8\pysqlcipher3\test
copying lib\test\__init__.py -> build\lib.win-amd64-3.8\pysqlcipher3\test
creating build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\dbapi.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\dump.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\factory.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\hooks.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\regression.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\sqlcipher.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\transactions.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\types.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\userfunctions.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\__init__.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
running build_ext
Builds a C extension linking against libsqlcipher library
building 'pysqlcipher3._sqlite3' extension
creating build\temp.win-amd64-3.8
creating build\temp.win-amd64-3.8\Release
creating build\temp.win-amd64-3.8\Release\src
creating build\temp.win-amd64-3.8\Release\src\python3
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DMODULE_NAME=\"pysqlcipher3.dbapi2\" -Ic:\users\flaboy\appdata\local\programs\python\python38\include -Ic:\users\flaboy\appdata\local\programs\python\python38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /Tcsrc\python3\module.c /Fobuild\temp.win-amd64-3.8\Release\src\python3\module.obj
module.c
C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-enu1m14b\pysqlcipher3\src\python3\connection.h(33): fatal error C1083: Cannot open include file: 'sqlcipher/sqlite3.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.27.29110\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
----------------------------------------
Building wheel for pysqlcipher3 (setup.py): finished with status 'done'
Running setup.py clean for pysqlcipher3
Running command 'c:\users\flaboy\appdata\local\programs\python\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-enu1m14b\\pysqlcipher3\\setup.py'"'"'; __file__='"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-enu1m14b\\pysqlcipher3\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' clean --all
running clean
removing 'build\temp.win-amd64-3.8' (and everything under it)
removing 'build\lib.win-amd64-3.8' (and everything under it)
'build\bdist.win-amd64' does not exist -- can't clean it
'build\scripts-3.8' does not exist -- can't clean it
removing 'build'
Failed to build pysqlcipher3
DEPRECATION: Could not build wheels for pysqlcipher3 which do not use PEP 517. pip will fall back to legacy 'setup.py install' for these. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
Installing collected packages: pysqlcipher3
Created temporary directory: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-record-8pg_shup
Running setup.py install for pysqlcipher3: started
Running command 'c:\users\flaboy\appdata\local\programs\python\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-enu1m14b\\pysqlcipher3\\setup.py'"'"'; __file__='"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-enu1m14b\\pysqlcipher3\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-record-8pg_shup\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\flaboy\appdata\local\programs\python\python38\Include\pysqlcipher3'
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.8
creating build\lib.win-amd64-3.8\pysqlcipher3
copying lib\dbapi2.py -> build\lib.win-amd64-3.8\pysqlcipher3
copying lib\dump.py -> build\lib.win-amd64-3.8\pysqlcipher3
copying lib\__init__.py -> build\lib.win-amd64-3.8\pysqlcipher3
creating build\lib.win-amd64-3.8\pysqlcipher3\test
copying lib\test\__init__.py -> build\lib.win-amd64-3.8\pysqlcipher3\test
creating build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\dbapi.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\dump.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\factory.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\hooks.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\regression.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\sqlcipher.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\transactions.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\types.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\userfunctions.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
copying lib\test\python3\__init__.py -> build\lib.win-amd64-3.8\pysqlcipher3\test\python3
running build_ext
Builds a C extension linking against libsqlcipher library
building 'pysqlcipher3._sqlite3' extension
creating build\temp.win-amd64-3.8
creating build\temp.win-amd64-3.8\Release
creating build\temp.win-amd64-3.8\Release\src
creating build\temp.win-amd64-3.8\Release\src\python3
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DMODULE_NAME=\"pysqlcipher3.dbapi2\" -Ic:\users\flaboy\appdata\local\programs\python\python38\include -Ic:\users\flaboy\appdata\local\programs\python\python38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /Tcsrc\python3\module.c /Fobuild\temp.win-amd64-3.8\Release\src\python3\module.obj
module.c
C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-enu1m14b\pysqlcipher3\src\python3\connection.h(33): fatal error C1083: Cannot open include file: 'sqlcipher/sqlite3.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.27.29110\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
Running setup.py install for pysqlcipher3: finished with status 'done'
Record file C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-record-8pg_shup\install-record.txt not found
Successfully installed pysqlcipher3
Removed build tracker: 'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-req-tracker-21e96s63'
(flask)
$ pip list
Package Version
-------------- ---------
atomicwrites 1.4.0
attrs 19.3.0
colorama 0.4.3
iniconfig 1.0.1
more-itertools 8.4.0
packaging 20.4
pip 20.2.2
pluggy 0.13.1
py 1.9.0
pyparsing 2.4.7
pytest 6.0.1
setuptools 41.2.0
six 1.15.0
toml 0.10.1
wheel 0.35.0
youtube-dl 2020.3.24
(flask)
@sylwesterdigital thanks. The relevant error is
C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-enu1m14b\pysqlcipher3\src\python3\connection.h(33): fatal error C1083: Cannot open include file: 'sqlcipher/sqlite3.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.27.29110\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
So the sqlcipher dependency is missing.
We can also see that pysqlcipher3 is not installed despite setup.py install
reporting success.
So I suspect there is a bug in pysqlcipher3's setup.py
that causes it to report success while it is actually failing.
I'd suggest reporting the issue with that project, as there is nothing we can do on pip side.
Thanks. I will try to rise this issue here: https://github.com/sqlcipher/sqlcipher/issues
Pls help me.
I downloaded Build Tools 2015. I downloaded setuptools. I downloaded wheels. I update pip.
pip version 20.2.2 Python version 3.8.3
I am trying to install a library vkbottle.
Pastebin ---> https://pastebin.com/bRDfpudV
# pip3 install vkbottle
Requirement already satisfied: vkbottle in c:\users\admin\appdata\local\programs\python\python38-32
\lib\site-packages\vkbottle-2.7.8-py3.8.egg (2.7.8)
Requirement already satisfied: aiohttp in c:\users\admin\appdata\local\programs\python\python38-32\
lib\site-packages (from vkbottle) (3.6.2)
Requirement already satisfied: contextvars in c:\users\admin\appdata\local\programs\python\python38
-32\lib\site-packages\contextvars-2.4-py3.8.egg (from vkbottle) (2.4)
Requirement already satisfied: pydantic in c:\users\admin\appdata\local\programs\python\python38-32
\lib\site-packages (from vkbottle) (1.6.1)
Requirement already satisfied: vbml in c:\users\admin\appdata\local\programs\python\python38-32\lib
\site-packages (from vkbottle) (0.3)
Requirement already satisfied: watchgod in c:\users\admin\appdata\local\programs\python\python38-32
\lib\site-packages (from vkbottle) (0.6)
Requirement already satisfied: async-timeout<4.0,>=3.0 in c:\users\admin\appdata\local\programs\pyt
hon\python38-32\lib\site-packages (from aiohttp->vkbottle) (3.0.1)
Requirement already satisfied: yarl<2.0,>=1.0 in c:\users\admin\appdata\local\programs\python\pytho
n38-32\lib\site-packages (from aiohttp->vkbottle) (1.5.1)
Requirement already satisfied: attrs>=17.3.0 in c:\users\admin\appdata\local\programs\python\python
38-32\lib\site-packages (from aiohttp->vkbottle) (19.3.0)
Requirement already satisfied: chardet<4.0,>=2.0 in c:\users\admin\appdata\local\programs\python\py
thon38-32\lib\site-packages (from aiohttp->vkbottle) (3.0.4)
Requirement already satisfied: multidict<5.0,>=4.5 in c:\users\admin\appdata\local\programs\python\
python38-32\lib\site-packages (from aiohttp->vkbottle) (4.7.6)
Collecting immutables>=0.9
Using cached immutables-0.14.tar.gz (42 kB)
Requirement already satisfied: poetry in c:\users\admin\appdata\local\programs\python\python38-32\l
ib\site-packages (from vbml->vkbottle) (1.0.10)
Requirement already satisfied: idna>=2.0 in c:\users\admin\appdata\local\programs\python\python38-3
2\lib\site-packages (from yarl<2.0,>=1.0->aiohttp->vkbottle) (2.10)
Requirement already satisfied: keyring<21.0.0,>=20.0.1; python_version >= "3.5" and python_version
< "4.0" in c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages (from poetry-
>vbml->vkbottle) (20.0.1)
Requirement already satisfied: pexpect<5.0.0,>=4.7.0 in c:\users\admin\appdata\local\programs\pytho
n\python38-32\lib\site-packages (from poetry->vbml->vkbottle) (4.8.0)
Requirement already satisfied: pyparsing<3.0,>=2.2 in c:\users\admin\appdata\local\programs\python\
python38-32\lib\site-packages (from poetry->vbml->vkbottle) (2.4.7)
Requirement already satisfied: pkginfo<2.0,>=1.4 in c:\users\admin\appdata\local\programs\python\py
thon38-32\lib\site-packages (from poetry->vbml->vkbottle) (1.5.0.1)
Requirement already satisfied: pyrsistent<0.15.0,>=0.14.2 in c:\users\admin\appdata\local\programs\
python\python38-32\lib\site-packages (from poetry->vbml->vkbottle) (0.14.11)
Requirement already satisfied: html5lib<2.0,>=1.0 in c:\users\admin\appdata\local\programs\python\p
ython38-32\lib\site-packages (from poetry->vbml->vkbottle) (1.1)
Requirement already satisfied: tomlkit<0.6.0,>=0.5.11 in c:\users\admin\appdata\local\programs\pyth
on\python38-32\lib\site-packages (from poetry->vbml->vkbottle) (0.5.11)
Requirement already satisfied: shellingham<2.0,>=1.1 in c:\users\admin\appdata\local\programs\pytho
n\python38-32\lib\site-packages (from poetry->vbml->vkbottle) (1.3.2)
Requirement already satisfied: cleo<0.8.0,>=0.7.6 in c:\users\admin\appdata\local\programs\python\p
ython38-32\lib\site-packages (from poetry->vbml->vkbottle) (0.7.6)
Requirement already satisfied: clikit<0.5.0,>=0.4.2 in c:\users\admin\appdata\local\programs\python
\python38-32\lib\site-packages (from poetry->vbml->vkbottle) (0.4.3)
Requirement already satisfied: jsonschema<4.0,>=3.1 in c:\users\admin\appdata\local\programs\python
\python38-32\lib\site-packages (from poetry->vbml->vkbottle) (3.2.0)
Requirement already satisfied: requests<3.0,>=2.18 in c:\users\admin\appdata\local\programs\python\
python38-32\lib\site-packages (from poetry->vbml->vkbottle) (2.24.0)
Requirement already satisfied: requests-toolbelt<0.9.0,>=0.8.0 in c:\users\admin\appdata\local\prog
rams\python\python38-32\lib\site-packages (from poetry->vbml->vkbottle) (0.8.0)
Requirement already satisfied: cachecontrol[filecache]<0.13.0,>=0.12.4 in c:\users\admin\appdata\lo
cal\programs\python\python38-32\lib\site-packages (from poetry->vbml->vkbottle) (0.12.6)
Requirement already satisfied: cachy<0.4.0,>=0.3.0 in c:\users\admin\appdata\local\programs\python\
python38-32\lib\site-packages (from poetry->vbml->vkbottle) (0.3.0)
Requirement already satisfied: pywin32-ctypes!=0.1.0,!=0.1.1; sys_platform == "win32" in c:\users\a
dmin\appdata\local\programs\python\python38-32\lib\site-packages (from keyring<21.0.0,>=20.0.1; pyt
hon_version >= "3.5" and python_version < "4.0"->poetry->vbml->vkbottle) (0.2.0)
Requirement already satisfied: ptyprocess>=0.5 in c:\users\admin\appdata\local\programs\python\pyth
on38-32\lib\site-packages (from pexpect<5.0.0,>=4.7.0->poetry->vbml->vkbottle) (0.6.0)
Requirement already satisfied: six in c:\users\admin\appdata\local\programs\python\python38-32\lib\
site-packages (from pyrsistent<0.15.0,>=0.14.2->poetry->vbml->vkbottle) (1.15.0)
Requirement already satisfied: webencodings in c:\users\admin\appdata\local\programs\python\python3
8-32\lib\site-packages (from html5lib<2.0,>=1.0->poetry->vbml->vkbottle) (0.5.1)
Requirement already satisfied: pastel<0.3.0,>=0.2.0 in c:\users\admin\appdata\local\programs\python
\python38-32\lib\site-packages (from clikit<0.5.0,>=0.4.2->poetry->vbml->vkbottle) (0.2.0)
Requirement already satisfied: pylev<2.0,>=1.3 in c:\users\admin\appdata\local\programs\python\pyth
on38-32\lib\site-packages (from clikit<0.5.0,>=0.4.2->poetry->vbml->vkbottle) (1.3.0)
Requirement already satisfied: setuptools in c:\users\admin\appdata\local\programs\python\python38-
32\lib\site-packages (from jsonschema<4.0,>=3.1->poetry->vbml->vkbottle) (49.6.0)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\users\admin\appdata\lo
cal\programs\python\python38-32\lib\site-packages (from requests<3.0,>=2.18->poetry->vbml->vkbottle
) (1.25.9)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\admin\appdata\local\programs\python\p
ython38-32\lib\site-packages (from requests<3.0,>=2.18->poetry->vbml->vkbottle) (2020.6.20)
Requirement already satisfied: msgpack>=0.5.2 in c:\users\admin\appdata\local\programs\python\pytho
n38-32\lib\site-packages (from cachecontrol[filecache]<0.13.0,>=0.12.4->poetry->vbml->vkbottle) (1.
0.0)
Requirement already satisfied: lockfile>=0.9; extra == "filecache" in c:\users\admin\appdata\local\
programs\python\python38-32\lib\site-packages (from cachecontrol[filecache]<0.13.0,>=0.12.4->poetry
->vbml->vkbottle) (0.12.2)
Building wheels for collected packages: immutables
Building wheel for immutables (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: 'c:\users\admin\appdata\local\programs\python\python38-32\python.exe' -u -c 'import sys
, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\admin\\AppData\\Local\\Temp\\pip-install-069v
r9ot\\immutables\\setup.py'"'"'; __file__='"'"'C:\\Users\\admin\\AppData\\Local\\Temp\\pip-install-
069vr9ot\\immutables\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read
().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' b
dist_wheel -d 'C:\Users\admin\AppData\Local\Temp\pip-wheel-bk5jpx95'
cwd: C:\Users\admin\AppData\Local\Temp\pip-install-069vr9ot\immutables\
Complete output (30 lines):
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win32-3.8
creating build\lib.win32-3.8\immutables
copying immutables\map.py -> build\lib.win32-3.8\immutables
copying immutables\_testutils.py -> build\lib.win32-3.8\immutables
copying immutables\_version.py -> build\lib.win32-3.8\immutables
copying immutables\__init__.py -> build\lib.win32-3.8\immutables
running egg_info
writing immutables.egg-info\PKG-INFO
writing dependency_links to immutables.egg-info\dependency_links.txt
writing top-level names to immutables.egg-info\top_level.txt
reading manifest file 'immutables.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'immutables.egg-info\SOURCES.txt'
copying immutables\_map.c -> build\lib.win32-3.8\immutables
copying immutables\_map.h -> build\lib.win32-3.8\immutables
copying immutables\_map.pyi -> build\lib.win32-3.8\immutables
copying immutables\py.typed -> build\lib.win32-3.8\immutables
running build_ext
building 'immutables._map' extension
creating build\temp.win32-3.8
creating build\temp.win32-3.8\Release
creating build\temp.win32-3.8\Release\immutables
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG
/MD -DNDEBUG=1 -Ic:\users\admin\appdata\local\programs\python\python38-32\include -Ic:\users\admin
\appdata\local\programs\python\python38-32\include "-IC:\Program Files (x86)\Microsoft Visual Studi
o 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\
Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /Tcimmutables/_map.c /Fobuild\temp.w
in32-3.8\Release\immutables/_map.obj -O2
_map.c
c:\users\admin\appdata\local\programs\python\python38-32\include\pyconfig.h(206): fatal error C10
83: ЌҐ г¤ Ґвбп ®вЄалвм д ©« ўЄ«о票Ґ: basetsd.h: No such file or directory,
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed wi
th exit status 2
----------------------------------------
ERROR: Failed building wheel for immutables
Running setup.py clean for immutables
Failed to build immutables
DEPRECATION: Could not build wheels for immutables which do not use PEP 517. pip will fall back to
legacy 'setup.py install' for these. pip 21.0 will remove support for this functionality. A possibl
e replacement is to fix the wheel build issue reported above. You can find discussion regarding thi
s at https://github.com/pypa/pip/issues/8368.
Installing collected packages: immutables
Running setup.py install for immutables ... error
ERROR: Command errored out with exit status 1:
command: 'c:\users\admin\appdata\local\programs\python\python38-32\python.exe' -u -c 'import s
ys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\admin\\AppData\\Local\\Temp\\pip-install-06
9vr9ot\\immutables\\setup.py'"'"'; __file__='"'"'C:\\Users\\admin\\AppData\\Local\\Temp\\pip-instal
l-069vr9ot\\immutables\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re
ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))'
install --record 'C:\Users\admin\AppData\Local\Temp\pip-record-_f7_ducl\install-record.txt' --sing
le-version-externally-managed --compile --install-headers 'c:\users\admin\appdata\local\programs\py
thon\python38-32\Include\immutables'
cwd: C:\Users\admin\AppData\Local\Temp\pip-install-069vr9ot\immutables\
Complete output (30 lines):
running install
running build
running build_py
creating build
creating build\lib.win32-3.8
creating build\lib.win32-3.8\immutables
copying immutables\map.py -> build\lib.win32-3.8\immutables
copying immutables\_testutils.py -> build\lib.win32-3.8\immutables
copying immutables\_version.py -> build\lib.win32-3.8\immutables
copying immutables\__init__.py -> build\lib.win32-3.8\immutables
running egg_info
writing immutables.egg-info\PKG-INFO
writing dependency_links to immutables.egg-info\dependency_links.txt
writing top-level names to immutables.egg-info\top_level.txt
reading manifest file 'immutables.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'immutables.egg-info\SOURCES.txt'
copying immutables\_map.c -> build\lib.win32-3.8\immutables
copying immutables\_map.h -> build\lib.win32-3.8\immutables
copying immutables\_map.pyi -> build\lib.win32-3.8\immutables
copying immutables\py.typed -> build\lib.win32-3.8\immutables
running build_ext
building 'immutables._map' extension
creating build\temp.win32-3.8
creating build\temp.win32-3.8\Release
creating build\temp.win32-3.8\Release\immutables
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEB
UG /MD -DNDEBUG=1 -Ic:\users\admin\appdata\local\programs\python\python38-32\include -Ic:\users\adm
in\appdata\local\programs\python\python38-32\include "-IC:\Program Files (x86)\Microsoft Visual Stu
dio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC
:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /Tcimmutables/_map.c /Fobuild\temp
.win32-3.8\Release\immutables/_map.obj -O2
_map.c
c:\users\admin\appdata\local\programs\python\python38-32\include\pyconfig.h(206): fatal error C
1083: ЌҐ г¤ Ґвбп ®вЄалвм д ©« ўЄ«о票Ґ: basetsd.h: No such file or directory,
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed
with exit status 2
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\admin\appdata\local\programs\python\python
38-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\admin\\App
Data\\Local\\Temp\\pip-install-069vr9ot\\immutables\\setup.py'"'"'; __file__='"'"'C:\\Users\\admin\
\AppData\\Local\\Temp\\pip-install-069vr9ot\\immutables\\setup.py'"'"';f=getattr(tokenize, '"'"'ope
n'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(
code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\admin\AppData\Local\Temp\pip-record-_f
7_ducl\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\user
s\admin\appdata\local\programs\python\python38-32\Include\immutables' Check the logs for full comma
nd output.
@Andrexxelles the error your are facing is not related to this issue nor pip. The relevant part is basetsd.h: No such file or directory
. So I you don't mind I'll go ahead and mark these two comments as off-topic, to keep the discussion on this issue easier to read.
i am getting the same error while installing mysqlclient
DEPRECATION: Could not build wheels for mysqlclient which do not use PEP 517. pip will fall back to legacy 'setup.py install' for these. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above.
wheel issue is- Building wheel for mysql (setup.py) ... done Created wheel for mysql: filename=mysql-0.0.2-py3-none-any.whl size=1252 sha256=ca801d4e9888754369abcdfb5791654e3a43361475a58726257b7954c7c4d735 Stored in directory: c:\users\admin\appdata\local\pip\cache\wheels\3e\4a\d0\506edab38d1bdf574b02c24805fcf7348a327297fcc285431d Building wheel for client (setup.py) ... done Created wheel for client: filename=client-0.0.1-py3-none-any.whl size=1441 sha256=cf97824f8b63db528014243e69082705c78c4397ca5891bfb2b7217a107e943c Stored in directory: c:\users\admin\appdata\local\pip\cache\wheels\1e\d6\d3\2084ee3b4ac9adaab2bf853307b140575c5fe9160821ab8e07 Building wheel for mysqlclient (setup.py) ... error ERROR: Command errored out with exit status 1:
@ritumishra9 Please post build error questions to pypa/packaging-problems instead.
Locking the thread to prevent more people asking unrelated questions here.
In version 21.0, pip will not attempt setup.py install in that case, and fail the installation right away.
I'm a little confused by this part of the plan and I can't find where this was discussed.
Right now, a whole class of packages use setup.py install
to work around the install vs build dependency synchronization issues we have. I think until we address the PEP 517 quality-of-implementation issues in pip (config_settings
, synchronized build + install dependencies in isolated environments, post-install steps for wheels etc), we shouldn't remove the setup.py install
branch this -- it'd be a very significant regression for those packages, since they'd be rendered no-longer-installable.
This seems to be removing a feature without a clear alternative for it, which can't end well. :)
--no-build-isolation
to handle cases where build isolation doesn't work for a project. Before accepting a bug report as being a blocker for this deprecation, I'd want to know why --no-build-isolation
isn't a workaround ("it's inconvenient" isn't sufficient IMO - deprecations are always inconvenient for someone).I'm completely fine with fixing the various PEP 517 and build isolation quality-of-implementation issues. But problems with quality of implementation aren't the same as "unusable", and we need to push people to be clear when they mean "I am unable to build wheels at all" and when they mean "it's clumsy or inconvenient for me to set things up so that I can build wheels".
Having said all of the above, I don't personally intend to push for the removal of the setup.py install
route. So if it's left to me, we won't remove in 21.0 anyway. It was @sbidoul who was driving this, so he's probably the person who really needs to comment. (I would support him if he wants to aim for an aggressive timescale, though).
BTW, one unfortunate result of including the issue link in the message is that the huge number of pingbacks here includes cases where people just paste pip output and github turns it into a link, when actually it's an unrelated issue or something the project is handling themselves. Let's not do that in future 🙂
The plan was indeed laid out in #8102, and https://github.com/pypa/pip/issues/8102#issuecomment-632718595 specifically. Comments about it seemed positive back then.
I'm not particularly pushing for this, although I'm convinced setup.py install has to go away sooner or later. Heck, even setuptools maintainers say people should use pip instead of setup.py install
- but if it's for pip to do a setup.py install what's the point? And we need data to shed light on the matter, otherwise we can only guess. The deprecation mechanism was considered a decent way to get such data.
This specific issue is for a very specific case: falling back to setup.py install when bdist_wheel fails. Even if we disable this behaviour, setup.py install stays, and can be activated by passing --install-options or --global-options.
It is unfortunate we have had so many backlinks from the error message, that was unintended, and it is now fixed in 20.2.3 where the deprecation happens in a much more focused manner.
So how do we get the feedback about this specific deprecation (other than reading all the backlinks, most of them irrelevant). Should we not unlock the issue to let people report about cases where the fallback is deemed useful ?
I have case where the fallback is still necessary, but mainly because it is a workaround for where the pyproject.toml is insufficient: I'm unable to have a environment marker that picks up the PyPy version (that is, not the Python version it implements like e.g. 3.6, but the PyPy release, such as e.g. 7.3.0). This is probably also an issue for Jython.
Without being able to select package versions for the specific PyPy release in the pyproject.toml file for use in the build environment, I'm back to making that selection in the setup.py file, where I can not control wheel build/install order and thus to relying on the fallback. (After which all is good, for now.)
Is there a known solution to this, or if there should be another marker, is there a process/place for adding or asking for such?
You can still use setup.py with pyproject.toml, the two files are entirely orthogonal. Conditional build-time requirements can be calculated and specified with the setup_requires
argument.
Sorry, not following. The reason I'm here is that the behavior of setup_requires
is going to break in the future, same as the questions posed and discussion in the other threads. I was under the impression that the behavior of building and immediately installing for use by the next package in dependency order can be recovered by using the pyproject.toml. Point being that the build environment wheels, build and installed, in correct order. They are then reused from the cache in setup.py, so it doesn't matter that the setup_requires
dependency order is no longer respected as the re-used wheels were correctly build. It's a bit of a hack, but yes, it can indeed be made to work for CPython.
But it can not for PyPy. The difference is that for CPython, the python version and the interpreter version match, so the dependency versions can be correctly selected. No such thing for PyPy, where the python version and interpreter version differ and only the former can be specified with a marker.
I just tried and If I treat pyproject.toml orthogonally (I think) from setup.py, by not specifying the exact versions in the pyproject.toml file and leaving it to setup_requires
, I simply get the latest versions in the build environment, followed by another build of the setup_requires
versions by setup.py in incorrect order and in an incorrect build environment. So, what am I missing? Thanks!
(Leaves the separate issue that pyproject.toml is less functional on non-CPython interpreters.)
Honestly, I’m not following your confusion either, since your description is so much deviated from my understanding to the situation. What makes you think setup_requires
is going to break in the future? It is not going away as far as I know; PEP 517 (the alternative to setup.py install
) provides the build backend (setuptools in this case) a hook to specify dynamic build-time dependencies (get_requires_for_build_wheel
), and setuptools uses setup(setup_requires=...)
to expose that to the user. The PEP 517 build system would:
pyproject.toml
setup.py
in that environment to install dynamic requirements (i.e. setup_requires
)So you do not need to specify the build dependency in pyproject.toml
if you have specified it in setup_requires
. And there should be no “another build” but only one build that performs two setup step. The puzzles don’t fit at all between your understanding and mine.
I probably should have asked this at the very beginning: what exactly are you trying to do? I am imagining something like:
import setuptools
if on_pypy_version_x():
build_deps = ["build-dep<5"]
else:
build_deps = ["build-dep>=5"]
setuptools.setup(
...,
setup_requires=build_deps,
)
And this is most definitely supposed to work, both right now and after setup.py install
is removed (it’s a bug in setuptools if it does not). And if that’s not what you mean, please provide more concrete description.
It's worth noting that setup_requires
is a deprecated option in setuptools. The setuptools documentation includes the statement
Note This used to be accomplished with the setup_requires keyword but is now considered deprecated in favor of the PEP 517 style described above. To peek into how this legacy keyword is used, consult our guide on deprecated practice (WIP)
If the approach @uranusjr noted above isn't enough, then I'd hope that the setuptools documentation gives @wlav enough information to allow them to modify their build process so that it works as needed. If it doesn't, then that's probably something that they should raise on the setuptools issue tracker.
Also, I don't know if setuptools warns when setup_requires
is used. If not, then maybe doing so would be worthwhile, but that's really down to whether setuptools users like @wlav feel that the deprecation isn't sufficiently well advertised already - and if that's the case then again I'd suggest flagging that on the setuptools tracker.
Ooh, I didn’t know setuptools actively deprecates setup_requires
; I’ve thought they only re-purpose it for PEP 517. Thanks.
If setup_requires
is to be avoided completely, PEP 517 in-tree backend would likely be the way to go. A project can define its own get_requires_for_build_wheel
to specify build-time requirements dynamically (and proxy everything else to setuptools).
It might be useful if someone were to collect examples of "modern" replacements for older approaches that are now deprecated, or "out of favour" and potentially going to get deprecated at some point.
I don't know where such a document would be hosted, though, and it would be very reliant on people using such older techniques doing the research on how to update them and then contributing that learning back to the community. In practice, though, I don't know how likely that is to happen. Stack Overflow is an obvious possibility, but curating that to ensure that obsolete advice is de-prioritised in favour of up to date answers is likely to be more time consuming than many of the Python packaging maintainers can manage, so again community involvement is needed.
@wlav - what would it have taken for you to find out that setup_requires
was deprecated, and that PEP 517 in-tree backends were a thing that you could consider to update your build process? I'm sure we haven't publicised in-tree backends well enough, but I don't know what we could do to improve the situation.
[Personally, I knew that setup_requires
was deprecated, but I didn't know that setuptools exposed that data via the PEP 517 hook, and I hadn't made the link to in-tree backends as an approach to replace the functionality. So this stuff isn't easily accessible even to so-called packaging experts like myself 🙂]
A bit of a late reply, but it has been a full and hectic week... Yes, examples would be really nice indeed! But as-is, providing a custom in-tree builder that simply imports all from setuptools.build_meta
and then adds the specific requirements for PyPy by shimming get_requires_for_build_wheel
works well enough.
@pfmoore - Forgot to answer your question, but basically: I get bug reports. I think it's not easy to keep up with changes in build systems, but enough people do keep up and let me know of important ones through my issue tracker. Similarly, many build systems are compatible with setuptools
to some extend, but only if the documented rules are followed. So, if my use doesn't follow those to the letter, it will break one of the many other build systems out there, and someone will bug me.
As for learning about in-tree backends, I got that information right here. :)
Wheels do not currently support symlinks because not all platforms support symlinks. As part of an install process we add logic to setup.py to create the symlinks, and would rather not duplicate the objects because they're large. Forcing wheel creation would require another set of hacks to resolve the issue.
See (other) discussion about symlinks + wheels at https://github.com/pypa/pip/issues/5919
I don'y think this a way to go. It will by highly inconvenient if this will stop to work after I'will upgrade pip.
I have dockerfile with following line
pip install graphviz==0.14.2 numpy==1.16.2 scipy==1.2.1
Dockerfile itself doesn't contain numpy and scipy, this what I'm seeing when I'm building my Dockerfile:
+ pip install 'graphviz==0.14.2' 'numpy==1.16.2' 'scipy==1.2.1'
Collecting graphviz==0.14.2
Downloading graphviz-0.14.2-py2.py3-none-any.whl (18 kB)
Collecting numpy==1.16.2
Downloading numpy-1.16.2.zip (5.1 MB)
Collecting scipy==1.2.1
Downloading scipy-1.2.1.tar.gz (23.1 MB)
Building wheels for collected packages: numpy, scipy
Building wheel for numpy (setup.py): started
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): finished with status 'done'
Created wheel for numpy: filename=numpy-1.16.2-cp38-cp38-linux_x86_64.whl size=10612309 sha256=6ec34736dd5ce8cd69dfe17b51a6a498419c927ac77e212da6b8541a32a94273
Stored in directory: /tmp/pip-ephem-wheel-cache-l8v8hrqu/wheels/c7/1a/26/d24add95f4ea99e790c3a8b339fb5b46b66f9849142d1b93c5
Building wheel for scipy (setup.py): started
Building wheel for scipy (setup.py): finished with status 'error'
Running setup.py clean for scipy
ERROR: Command errored out with exit status 1:
command: /opt/anaconda3/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-bnmbadcn/scipy_27de2a367cd54e0bb00563ab2256b56f/setup.py'"'"'; __file__='"'"'/tmp/pip-install-bnmbadcn/scipy_27de2a367cd54e0bb00563ab2256b56f/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-54nh3dnh
cwd: /tmp/pip-install-bnmbadcn/scipy_27de2a367cd54e0bb00563ab2256b56f/
Complete output (9 lines):
/tmp/pip-install-bnmbadcn/scipy_27de2a367cd54e0bb00563ab2256b56f/setup.py:114: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-bnmbadcn/scipy_27de2a367cd54e0bb00563ab2256b56f/setup.py", line 492, in <module>
setup_package()
File "/tmp/pip-install-bnmbadcn/scipy_27de2a367cd54e0bb00563ab2256b56f/setup.py", line 468, in setup_package
from numpy.distutils.core import setup
ModuleNotFoundError: No module named 'numpy'
----------------------------------------
ERROR: Failed building wheel for scipy
ERROR: Command errored out with exit status 1:
command: /opt/anaconda3/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-bnmbadcn/scipy_27de2a367cd54e0bb00563ab2256b56f/setup.py'"'"'; __file__='"'"'/tmp/pip-install-bnmbadcn/scipy_27de2a367cd54e0bb00563ab2256b56f/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' clean --all
cwd: /tmp/pip-install-bnmbadcn/scipy_27de2a367cd54e0bb00563ab2256b56f
Complete output (11 lines):
/tmp/pip-install-bnmbadcn/scipy_27de2a367cd54e0bb00563ab2256b56f/setup.py:114: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
`setup.py clean` is not supported, use one of the following instead:
- `git clean -xdf` (cleans all files)
- `git clean -Xdf` (cleans all versioned files, doesn't touch
files that aren't checked into the git repo)
Add `--force` to your command to use it anyway if you must (unsupported).
----------------------------------------
ERROR: Failed cleaning build dir for scipy
Successfully built numpy
Failed to build scipy
Installing collected packages: numpy, scipy, graphviz
Running setup.py install for scipy: started
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: still running...
Running setup.py install for scipy: finished with status 'done'
DEPRECATION: scipy was installed using the legacy 'setup.py install' method, because a wheel could not be built for it. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
Successfully installed graphviz-0.14.2 numpy-1.16.2 scipy-1.2.1
@alex-ber thank you very much for the detailed report. We are very much looking for real-world situations where a wheel cannot be built while setup.py install works.
In your case what seems to happen is this. Scipy requires numpy as a build dependency. In the wheel building step, numpy is not installed, therefore it fails. Then pip falls back to setup.py install mode, and I think it succeeds because, by chance, numpy is installed before scipy's setup.py install runs.
Could you try installing in two steps to see if the error, and the deprecation warning disappear ?
pip install graphviz==0.14.2 numpy==1.16.2
pip install scipy==1.2.1
Alternatively, upgrading to a recent version of scipy that has a pyproject.toml that declares numpy as a build dependency should work too.
@sbidoul I have spited in two lines and this works without warning and using wheel. This is the output:
+ pip install 'graphviz==0.14.2' 'numpy==1.16.2'
Collecting graphviz==0.14.2
Downloading graphviz-0.14.2-py2.py3-none-any.whl (18 kB)
Collecting numpy==1.16.2
Downloading numpy-1.16.2.zip (5.1 MB)
Building wheels for collected packages: numpy
Building wheel for numpy (setup.py): started
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): still running...
Building wheel for numpy (setup.py): finished with status 'done'
Created wheel for numpy: filename=numpy-1.16.2-cp38-cp38-linux_x86_64.whl size=10612313 sha256=136c953f8560dd57cdd651b2b9c8af3b3454d00098f8b26c3ba223626f32e82e
Stored in directory: /tmp/pip-ephem-wheel-cache-79x7lajv/wheels/c7/1a/26/d24add95f4ea99e790c3a8b339fb5b46b66f9849142d1b93c5
Successfully built numpy
Installing collected packages: numpy, graphviz
Successfully installed graphviz-0.14.2 numpy-1.16.2
+ pip install 'scipy==1.2.1'
Collecting scipy==1.2.1
Downloading scipy-1.2.1.tar.gz (23.1 MB)
Building wheels for collected packages: scipy
Building wheel for scipy (setup.py): started
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): still running...
Building wheel for scipy (setup.py): finished with status 'done'
Created wheel for scipy: filename=scipy-1.2.1-cp38-cp38-linux_x86_64.whl size=55957602 sha256=84f7c97fc95b6893c1924f8d90851b69cc53de3ebb6d536d049b581cbb293532
Stored in directory: /tmp/pip-ephem-wheel-cache-cr9csfcz/wheels/0a/51/83/29c07027bd3a7ad5cd422b3925ce6a1b8d8232f3beba759588
Successfully built scipy
Installing collected packages: scipy
Successfully installed scipy-1.2.1
Have the same problem when trying to install Python-Levenshtein Does anyone have a solution to this?
I found that using py -m pip install -U --no-deps ...
worked in a few cases. This is not ideal, of course. Otherwise, I believe the package author needs to re-build the package and re-upload to PyPI. When --no-deps
works, I suspect it is a dependency that needs to be re-built.
@ddfcrystal the issue most probably lies in the setup.py
of the package you try to install. Feel free however to post your installation log here and I'll take a look.
@djhenderson this issue is unrelated to --no-deps
. What probably happens is that one of your dependencies has a buggy setup.py that triggers this warning.
A quick note. Pip 21.0 is due for release in about 2 weeks (see #9282). This item is on the 21.0 milestone, so it either needs to be implemented and merged to master before then, or it will miss the release (and I'll move it to the 21.1 milestone).
Removing this from 21.0 because #9423 if this is the correct #8368 tab.
I'm rather confused by this. When I install my library (mindsdb
, for which I explicitly provide no wheel since it requires user-specific steps in setup.py
for it to install properly) I get:
DEPRECATION: mindsdb was installed using the legacy 'setup.py install' method, because a wheel could not be built for it. pip 21.0 will remove support for this functionality. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
but when updating to 21 the message just changes to:
DEPRECATION: mindsdb was installed using the legacy 'setup.py install' method, because a wheel could not be built for it. A possible replacement is to fix the wheel build issue reported above. You can find discussion regarding this at https://github.com/pypa/pip/issues/8368.
and everything still works.
When is sdist going to be deprecated? Will it ever be?
I see no alternatives presented in here per say, is every library maintainer supposed to be build wheels for everything now? (Not an issue for me specifically, since I have access to resources to do so on dozens of different envs, but I assume for some maintainers this could prove difficult(?))
I'm fairly sure I'm misunderstanding something here, corrections would be appreciated.
sdist is not boing to be deprecated. Installing it without either having a pyproject.toml
in the sdist or having wheel
installed in the environment is. As a maintainer, you should seriously consider opting into PEP 517.
@George3d6 sorry for the confusion about the deprecation version.
At this stage we are trying to collect feedback on situations where pip running setup.py install
would still be necessary, as opposed to first running setup.py bdist_wheel
and then installing the resulting wheel.
When is sdist going to be deprecated? Will it ever be?
There is no plan to deprecate sdists. There are also no plans that I know of to force all maintainers to publish wheels. But the ecosystem is indeed moving to installing via first building a wheel and then installing it.
So in your case it would be interesting to understand why setup.py bdist_wheel
would not work for you, and what would block you from moving to PEP 517 as @uranusjr just mentioned.
Ok, so, I think I was probably uninformed on the issue (and still might be).
Quick aside as to why (in case you care):
I think the main issue here might have been that I either didn't read the official docs properly at the time (and instead looked at resources online, which often seem deprecated). I also took the example of pytroch, sklearn and numpy when I originally created my package, and none were using .tomls at the time (though I see 2 of them now are, might be worth pinging the devs from large projects like pytroch about this though, since I assume many dummies alike myself take after what they are doing without properly checking the docs :p).
So, just to confirm my understanding here: As long as I supply a .toml specifying the build tools required I should still be able to distributed a package that installs on the user's machine instead of requiring me to precompile it? As in, everything will work just the same + I will get to chose the exact version of setuptools that will be used, which seems like a plus, and potentially various other build env dependencies.
If so, nothing would stop me from migrating to this new specification and I was just poorly informed until about now.
So in your case it would be interesting to understand why setup.py bdist_wheel would not work for you, and what would block you from moving to PEP 517 as @uranusjr just mentioned.
I assume by this you mean why I am not being able to just publish wheels and still required setup.py to run on the user's machine? If so, the answer is that I need to be able to install dependencies dynamically based on the user's env: https://github.com/mindsdb/lightwood/blob/stable/setup.py#L31 (Mind you this doesn't seem to work all the time, and would be fixed by compiling wheels for every type of env we want to support, and is a very bad practice, and we've more or less moved to custom installers for our project in order to avoid needing these kind of hacks in the future and in order to remove them ASAP)
... hopefully that sheds some light on the situation, thanks a lot for the helps thus far, as I said, I think this is an issue of me being misinformed, so thanks for taking the time to answer.
I assume by this you mean why I am not being able to just publish wheels and still required setup.py to run on the user's machine?
No :) If you reached this issue, it should mean pip first tried setup.py bdist_wheel
and that failed, and then fell back to doing setup.py install
and that succeeded. What we are trying to understand is why bdist_wheel
would fail while setup.py install
succeeds. Normally the reason for the bdist_wheel failure should be in the pip install log.
So, just to confirm my understanding here: As long as I supply a .toml specifying the build tools required I should still be able to distributed a package that installs on the user's machine instead of requiring me to precompile it? As in, everything will work just the same + I will get to chose the exact version of setuptools that will be used, which seems like a plus, and potentially various other build env dependencies.
Also, yes, this is what you should expect by opting into pyproject.toml
. Tell us if things don’t work like this, because that’s a bug!
No :) If you reached this issue, it should mean pip first tried setup.py bdist_wheel and that failed, and then fell back to doing setup.py install and that succeeded. What we are trying to understand is why bdist_wheel would fail while setup.py install succeeds. Normally the reason for the bdist_wheel failure should
Hm, ok, this makes me a bit confused, since I didn't realize pip would even try to run setup.py bdist_wheel
on the user's machine... I thought the logic was.
setup.py install
So I guess I didn't realize pip would try to build then instal the whl on the user's machine.
Also, yes, this is what you should expect by opting into pyproject.toml. Tell us if things don’t work like this, because that’s a bug!
Alright, I expect this to work once I upgrade, I will figure this out today, again, I think the issue here was on my end ignoring the ""right" way to go about packaging.
So, as far as I can tell adding the .toml does break my build. Since it builds a wheel it ignore some or all of the instructions I have for windows that I linked here: https://github.com/mindsdb/lightwood/blob/stable/setup.py#L31 and this causes things to fail.
What I'm doing in the above is hacky, since pypi no longer allows installing 3rd party wheels, but also was required at the time since torch was otherwise uninstallable for windows and it might still be required...
We actually switched from using purely pypi to using our own installers (that pip install and do some extra env setup), so this is fixable for us, but might not be for other projects (wouldn't have been for us e.g. 3 months ago when we still encouraged people to install our software via pip directly)
Many thanks for offering the help. The problem has been solved as I changed to install a different version of the package. Thanks
Difang Deng
From: Stéphane Bidoul notifications@github.com Sent: Saturday, January 9, 2021 12:07:18 PM To: pypa/pip pip@noreply.github.com Cc: ddfcrystal difangdeng@outlook.com; Mention mention@noreply.github.com Subject: Re: [pypa/pip] Deprecate call to 'setup.py install' when building a wheel failed for source distributions without pyproject.toml (#8368)
@ddfcrystalhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fddfcrystal&data=04%7C01%7C%7Ca92c61de73c74a5afc6808d8b4971ce2%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637457908396685117%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=XzkAPqJ5cSwGoxR%2Bh%2BVcM97vIpL%2FNScVZY1Ud5e4YF8%3D&reserved=0 the issue most probably lies in the setup.py of the package you try to install. Feel free however to post your installation log here and I'll take a look.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpypa%2Fpip%2Fissues%2F8368%23issuecomment-757139971&data=04%7C01%7C%7Ca92c61de73c74a5afc6808d8b4971ce2%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637457908396685117%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=ZdeRtWYjaZomhISjSl1H3CmFZytwB1eeDsRlniMWtfU%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FARSTVDHKJEKQ6P5T7YFRYY3SZBBHNANCNFSM4NPEEELQ&data=04%7C01%7C%7Ca92c61de73c74a5afc6808d8b4971ce2%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637457908396685117%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BllJa2IGRkj1qZyJ2m4Xo%2F%2BrI8IVEnHnacTBEJiGS0o%3D&reserved=0.
This is one of a series of deprecations meant to collect feedback on the ultimate goal of always installing source distributions by first building a wheel and then installing from it.
This specific issue is about the case when pip calls
setup.py bdist_wheel
and that fails. In that case, pip currently displays the build error and continues installation by attempting asetup.py install
.In a future version, pip will not attempt
setup.py install
in that case, and fail the installation right away.Towards #8102