pyca / pynacl

Python binding to the Networking and Cryptography (NaCl) library
https://pynacl.readthedocs.io/
Apache License 2.0
1.05k stars 228 forks source link

ERROR: Could not build wheels for PyNaCl which use PEP 517 and cannot be installed directly / ERROR: The 'make' utility is missing from PATH #637

Closed SquirrelPower closed 3 years ago

SquirrelPower commented 3 years ago

OK I'm not gonna pretend I know anything but hey. I'm trying to install discord.py[voice] and I get this, every single time. I have discord.py that installed no issue. I'm using python 3.9 and my pip is up to date and I don't quite have a clue what I'm missing here. pycanl is installed apparently, even pep517 is supposedly installed as when I try to install/update them they say requirements already satisfied.

py -3 -m pip install -U discord.py[voice] Requirement already up-to-date: discord.py[voice] in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (1.5.0) Requirement already satisfied, skipping upgrade: aiohttp<3.7.0,>=3.6.0 in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (from discord.py[voice]) (3.6.3) Collecting PyNaCl==1.3.0; extra == "voice" Using cached PyNaCl-1.3.0.tar.gz (3.4 MB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing wheel metadata ... done Requirement already satisfied, skipping upgrade: async-timeout<4.0,>=3.0 in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (from aiohttp<3.7.0,>=3.6.0->discord.py[voice]) (3.0.1) Requirement already satisfied, skipping upgrade: yarl<1.6.0,>=1.0 in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (from aiohttp<3.7.0,>=3.6.0->discord.py[voice]) (1.5.1) Requirement already satisfied, skipping upgrade: multidict<5.0,>=4.5 in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (from aiohttp<3.7.0,>=3.6.0->discord.py[voice]) (4.7.6) Requirement already satisfied, skipping upgrade: attrs>=17.3.0 in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (from aiohttp<3.7.0,>=3.6.0->discord.py[voice]) (20.2.0) Requirement already satisfied, skipping upgrade: chardet<4.0,>=2.0 in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (from aiohttp<3.7.0,>=3.6.0->discord.py[voice]) (3.0.4) Requirement already satisfied, skipping upgrade: cffi>=1.4.1 in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (from PyNaCl==1.3.0; extra == "voice"->discord.py[voice]) (1.14.3) Requirement already satisfied, skipping upgrade: six in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (from PyNaCl==1.3.0; extra == "voice"->discord.py[voice]) (1.15.0) Requirement already satisfied, skipping upgrade: idna>=2.0 in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (from yarl<1.6.0,>=1.0->aiohttp<3.7.0,>=3.6.0->discord.py[voice]) (2.10) Requirement already satisfied, skipping upgrade: pycparser in c:\users\andre\appdata\local\programs\python\python39\lib\site-packages (from cffi>=1.4.1->PyNaCl==1.3.0; extra == "voice"->discord.py[voice]) (2.20) Building wheels for collected packages: PyNaCl Building wheel for PyNaCl (PEP 517) ... error ERROR: Command errored out with exit status 1: command: 'C:\Users\andre\AppData\Local\Programs\Python\Python39\python.exe' 'C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\site-packages\pip_vendor\pep517_in_process.py' buildwheel 'C:\Users\andre\AppData\Local\Temp\tmpmzmuetkm' cwd: C:\Users\andre\AppData\Local\Temp\pip-install-ljztg0a\pynacl Complete output (78 lines): running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-3.9 creating build\lib.win-amd64-3.9\nacl copying src\nacl\encoding.py -> build\lib.win-amd64-3.9\nacl copying src\nacl\exceptions.py -> build\lib.win-amd64-3.9\nacl copying src\nacl\hash.py -> build\lib.win-amd64-3.9\nacl copying src\nacl\hashlib.py -> build\lib.win-amd64-3.9\nacl copying src\nacl\public.py -> build\lib.win-amd64-3.9\nacl copying src\nacl\secret.py -> build\lib.win-amd64-3.9\nacl copying src\nacl\signing.py -> build\lib.win-amd64-3.9\nacl copying src\nacl\utils.py -> build\lib.win-amd64-3.9\nacl copying src\nacl__init.py -> build\lib.win-amd64-3.9\nacl creating build\lib.win-amd64-3.9\nacl\pwhash copying src\nacl\pwhash\argon2i.py -> build\lib.win-amd64-3.9\nacl\pwhash copying src\nacl\pwhash\argon2id.py -> build\lib.win-amd64-3.9\nacl\pwhash copying src\nacl\pwhash\scrypt.py -> build\lib.win-amd64-3.9\nacl\pwhash copying src\nacl\pwhash_argon2.py -> build\lib.win-amd64-3.9\nacl\pwhash copying src\nacl\pwhash__init.py -> build\lib.win-amd64-3.9\nacl\pwhash creating build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_aead.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_box.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_generichash.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_hash.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_kx.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_pwhash.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_scalarmult.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_secretbox.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_secretstream.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_shorthash.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\crypto_sign.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\randombytes.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\sodium_core.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\utils.py -> build\lib.win-amd64-3.9\nacl\bindings copying src\nacl\bindings\init__.py -> build\lib.win-amd64-3.9\nacl\bindings running build_clib Traceback (most recent call last): File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\site-packages\pip_vendor\pep517_in_process.py", line 280, in main() File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\site-packages\pip_vendor\pep517_in_process.py", line 263, in main json_out['return_val'] = hook(**hook_input['kwargs']) File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\site-packages\pip_vendor\pep517_in_process.py", line 204, in build_wheel return _build_backend().build_wheel(wheel_directory, config_settings, File "C:\Users\andre\AppData\Local\Temp\pip-build-env-6ounpfcy\overlay\Lib\site-packages\setuptools\build_meta.py", line 216, in build_wheel return self._build_with_temp_dir(['bdist_wheel'], '.whl', File "C:\Users\andre\AppData\Local\Temp\pip-build-env-6ounpfcy\overlay\Lib\site-packages\setuptools\build_meta.py", line 202, in _build_with_temp_dir self.run_setup() File "C:\Users\andre\AppData\Local\Temp\pip-build-env-6ounpfcy\overlay\Lib\site-packages\setuptools\build_meta.py", line 253, in run_setup super(_BuildMetaLegacyBackend, File "C:\Users\andre\AppData\Local\Temp\pip-build-env-6ounpfcy\overlay\Lib\site-packages\setuptools\build_meta.py", line 145, in run_setup exec(compile(code, file, 'exec'), locals()) File "setup.py", line 208, in setup( File "C:\Users\andre\AppData\Local\Temp\pip-build-env-6ounpfcy\overlay\Lib\site-packages\setuptools\init__.py", line 153, in setup return distutils.core.setup(**attrs) File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\distutils\core.py", line 148, in setup dist.run_commands() File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 966, in run_commands self.run_command(cmd) File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 985, in run_command cmd_obj.run() File "C:\Users\andre\AppData\Local\Temp\pip-build-env-6ounpfcy\overlay\Lib\site-packages\wheel\bdist_wheel.py", line 290, in run self.run_command('build') File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\distutils\cmd.py", line 313, in run_command self.distribution.run_command(command) File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 985, in run_command cmd_obj.run() File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\distutils\command\build.py", line 135, in run self.run_command(cmd_name) File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\distutils\cmd.py", line 313, in run_command self.distribution.run_command(command) File "C:\Users\andre\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 985, in run_command cmd_obj.run() File "setup.py", line 159, in run raise Exception("ERROR: The 'make' utility is missing from PATH") Exception: ERROR: The 'make' utility is missing from PATH

ERROR: Failed building wheel for PyNaCl Failed to build PyNaCl ERROR: Could not build wheels for PyNaCl which use PEP 517 and cannot be installed directly

reaperhulk commented 3 years ago

PyNaCl 1.3.0 does not have a Windows 3.9 wheel. This causes it to try to compile on your machine, which fails. You can either modify the dependency to depend on 1.4.0 (which will install and should not cause any issues, but requires a reasonable amount of Python ecosystem knowledge), convince the discord.py project to upgrade it for you and issue a new release, or use Python 3.8 until discord.py updates.

SquirrelPower commented 3 years ago

PyNaCl 1.3.0 does not have a Windows 3.9 wheel. This causes it to try to compile on your machine, which fails. You can either modify the dependency to depend on 1.4.0 (which will install and should not cause any issues, but requires a reasonable amount of Python ecosystem knowledge), convince the discord.py project to upgrade it for you and issue a new release, or use Python 3.8 until discord.py updates.

Ah yeah that makes sense. I'll probably go down to 3.8 and go from there for now. Thanks much!

m13253 commented 3 years ago

convince the discord.py project to upgrade it for you and issue a new release

This issue is in track by the upstream: https://github.com/Rapptz/discord.py/issues/5984