一,mac环境安装cryptography报错:
命令:pip3 install cryptography --user
Collecting cryptographyUsing cached https://files.pythonhosted.org/packages/fa/2d/2154d8cb773064570f48ec0b60258a4522490fcb115a6c7c9423482ca993/cryptography-3.4.6.tar.gzInstalling build dependencies ... doneGetting requirements to build wheel ... donePreparing wheel metadata ... done
Collecting cffi>=1.12 (from cryptography)Using cached https://files.pythonhosted.org/packages/a8/20/025f59f929bbcaa579704f443a438135918484fffaacfaddba776b374563/cffi-1.14.5.tar.gz
Collecting pycparser (from cffi>=1.12->cryptography)Using cached https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024debf82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl
Building wheels for collected packages: cryptographyBuilding wheel for cryptography (PEP 517) ... errorERROR: Command errored out with exit status 1:command: /Applications/Xcode.app/Contents/Developer/usr/bin/python3 /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /var/folders/l_/cn2h3f3152571h8yxm1_gxvr0000gn/T/tmpw3rnlmtvcwd: /private/var/folders/l_/cn2h3f3152571h8yxm1_gxvr0000gn/T/pip-install-iv4rg9xe/cryptographyComplete output (161 lines):running bdist_wheelrunning buildrunning build_pycreating buildcreating build/lib.macosx-10.14.6-arm64-3.8creating build/lib.macosx-10.14.6-arm64-3.8/cryptographycopying src/cryptography/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptographycopying src/cryptography/utils.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptographycopying src/cryptography/__about__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptographycopying src/cryptography/exceptions.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptographycopying src/cryptography/fernet.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptographycreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmatcopying src/cryptography/hazmat/_der.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmatcopying src/cryptography/hazmat/_types.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmatcopying src/cryptography/hazmat/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmatcopying src/cryptography/hazmat/_oid.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmatcreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/x509copying src/cryptography/x509/oid.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/x509copying src/cryptography/x509/ocsp.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/x509copying src/cryptography/x509/general_name.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/x509copying src/cryptography/x509/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/x509copying src/cryptography/x509/extensions.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/x509copying src/cryptography/x509/name.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/x509copying src/cryptography/x509/base.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/x509copying src/cryptography/x509/certificate_transparency.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/x509creating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backendscopying src/cryptography/hazmat/backends/interfaces.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backendscopying src/cryptography/hazmat/backends/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backendscreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/_serialization.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/cmac.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/_asymmetric.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/_cipheralgorithm.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/poly1305.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/hmac.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/hashes.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescopying src/cryptography/hazmat/primitives/padding.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitivescreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/bindingscopying src/cryptography/hazmat/bindings/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/bindingscreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/x448.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/ocsp.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/encode_asn1.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/dh.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/poly1305.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/ed25519.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/ed448.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/x25519.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcopying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/backends/opensslcreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/kdfcopying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/kdfcopying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/kdfcopying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/kdfcopying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/kdfcopying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/kdfcopying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/kdfcopying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/kdfcreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/twofactorcopying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/twofactorcopying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/twofactorcopying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/twofactorcopying src/cryptography/hazmat/primitives/twofactor/utils.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/twofactorcreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/serializationcopying src/cryptography/hazmat/primitives/serialization/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/serializationcopying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/serializationcopying src/cryptography/hazmat/primitives/serialization/pkcs7.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/serializationcopying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/serializationcopying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/serializationcreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/cipherscopying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/cipherscopying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/cipherscopying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/cipherscopying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/cipherscopying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/cipherscreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccopying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/primitives/asymmetriccreating build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/bindings/opensslcopying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/bindings/opensslcopying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/bindings/opensslcopying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.macosx-10.14.6-arm64-3.8/cryptography/hazmat/bindings/opensslrunning egg_infowriting src/cryptography.egg-info/PKG-INFOwriting dependency_links to src/cryptography.egg-info/dependency_links.txtwriting requirements to src/cryptography.egg-info/requires.txtwriting top-level names to src/cryptography.egg-info/top_level.txtreading manifest file 'src/cryptography.egg-info/SOURCES.txt'reading manifest template 'MANIFEST.in'no previously-included directories found matching 'docs/_build'warning: no previously-included files found matching 'vectors'warning: no previously-included files matching '*' found under directory 'vectors'warning: no previously-included files matching '*' found under directory '.github'warning: no previously-included files found matching 'release.py'warning: no previously-included files found matching '.coveragerc'warning: no previously-included files found matching 'codecov.yml'warning: no previously-included files found matching '.readthedocs.yml'warning: no previously-included files found matching 'dev-requirements.txt'warning: no previously-included files found matching 'tox.ini'warning: no previously-included files found matching 'mypy.ini'warning: no previously-included files matching '*' found under directory '.zuul.d'warning: no previously-included files matching '*' found under directory '.zuul.playbooks'writing manifest file 'src/cryptography.egg-info/SOURCES.txt'copying src/cryptography/py.typed -> build/lib.macosx-10.14.6-arm64-3.8/cryptographyrunning build_extgenerating cffi module 'build/temp.macosx-10.14.6-arm64-3.8/_padding.c'creating build/temp.macosx-10.14.6-arm64-3.8generating cffi module 'build/temp.macosx-10.14.6-arm64-3.8/_openssl.c'running build_rust=============================DEBUG ASSISTANCE=============================If you are seeing a compilation error please try the following steps tosuccessfully install cryptography:1) Upgrade to the latest pip and try again. This will fix errors for mostusers. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip2) Read https://cryptography.io/en/latest/installation.html for specificinstructions for your platform.3) Check our frequently asked questions for more information:https://cryptography.io/en/latest/faq.html4) Ensure you have a recent Rust toolchain installed:https://cryptography.io/en/latest/installation.html#rust5) If you are experiencing issues with Rust for *this release only* you mayset the environment variable `CRYPTOGRAPHY_DONT_BUILD_RUST=1`.=============================DEBUG ASSISTANCE=============================error: can't find Rust compilerIf you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.To update pip, run:pip install --upgrade pipand then retry package installation.If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.This package requires Rust >=1.41.0.----------------------------------------ERROR: Failed building wheel for cryptographyRunning setup.py clean for cryptographyERROR: Command errored out with exit status 1:command: /Applications/Xcode.app/Contents/Developer/usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/l_/cn2h3f3152571h8yxm1_gxvr0000gn/T/pip-install-iv4rg9xe/cryptography/setup.py'"'"'; __file__='"'"'/private/var/folders/l_/cn2h3f3152571h8yxm1_gxvr0000gn/T/pip-install-iv4rg9xe/cryptography/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' clean --allcwd: /private/var/folders/l_/cn2h3f3152571h8yxm1_gxvr0000gn/T/pip-install-iv4rg9xe/cryptographyComplete output (36 lines):running cleanremoving 'build/temp.macosx-10.14.6-arm64-3.8' (and everything under it)removing 'build/lib.macosx-10.14.6-arm64-3.8' (and everything under it)'build/bdist.macosx-10.14.6-arm64' does not exist -- can't clean it'build/scripts-3.8' does not exist -- can't clean itremoving 'build'running clean_rust=============================DEBUG ASSISTANCE=============================If you are seeing a compilation error please try the following steps tosuccessfully install cryptography:1) Upgrade to the latest pip and try again. This will fix errors for mostusers. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip2) Read https://cryptography.io/en/latest/installation.html for specificinstructions for your platform.3) Check our frequently asked questions for more information:https://cryptography.io/en/latest/faq.html4) Ensure you have a recent Rust toolchain installed:https://cryptography.io/en/latest/installation.html#rust5) If you are experiencing issues with Rust for *this release only* you mayset the environment variable `CRYPTOGRAPHY_DONT_BUILD_RUST=1`.=============================DEBUG ASSISTANCE=============================error: can't find Rust compilerIf you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.To update pip, run:pip install --upgrade pipand then retry package installation.If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.This package requires Rust >=1.41.0.----------------------------------------ERROR: Failed cleaning build dir for cryptography Failed to build cryptography Building wheels for collected packages: cffiBuilding wheel for cffi (setup.py) ... doneCreated wheel for cffi: filename=cffi-1.14.5-cp38-cp38-macosx_10_14_6_arm64.whl size=258017 sha256=45d30880bdd77fcf8bcd5349435c29f951bd566beb6c851ca1558b217e21c61bStored in directory: /Users/cuixin/Library/Caches/pip/wheels/cf/14/00/656047b7f0b1add314a90c6832a5d9ae86479c8974ff2c3262 Successfully built cffi ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly WARNING: You are using pip version 19.2.3, however version 21.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command.
二,解决方案:
pip3 install --upgrade pip --user
无法为使用PEP 517且无法直接安装的scipy构建轮子(ERROR: Could not build wheels for scipy which use PEP 517 and cannot be installed directly)