安装上述pycrypto包出错
原因是 linux系统中 没有 C/C++ 编译环境。
出错信息如下:
(djg3211env) dogger@thinkos:~/WebProjects/aisitev$ pip install alipay-sdk-python==3.3.398
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting alipay-sdk-python==3.3.398
Downloading https://mirrors.aliyun.com/pypi/packages/7c/49/5594b0bdc8466096a620e9a3936a627b7fbfc6f27ab0045c8874573d6fd5/alipay_sdk_python-3.3.398-py3-none-any.whl (8.8 MB)
|████████████████████████████████| 8.8 MB 4.6 MB/s
Collecting pycrypto
Using cached https://mirrors.aliyun.com/pypi/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz (446 kB)
Collecting rsa
Downloading https://mirrors.aliyun.com/pypi/packages/30/ab/8fd9e88e6fa5ec41afca995938bbefb72195278e0cfc5bd76a4f29b23fb2/rsa-4.8-py3-none-any.whl (39 kB)
Requirement already satisfied: pyasn1>=0.1.3 in /home/dogger/miniconda3/envs/djg3211env/lib/python3.9/site-packages (from rsa->alipay-sdk-python==3.3.398) (0.4.8)
Building wheels for collected packages: pycrypto
Building wheel for pycrypto (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /home/dogger/miniconda3/envs/djg3211env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py'"'"'; __file__='"'"'/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-6_9gqr8p
cwd: /tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/
Complete output (187 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/Crypto
copying lib/Crypto/__init__.py -> build/lib.linux-x86_64-3.9/Crypto
copying lib/Crypto/pct_warnings.py -> build/lib.linux-x86_64-3.9/Crypto
creating build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/SHA.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/SHA384.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/SHA224.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/SHA256.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/SHA512.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/MD5.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/MD4.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/hashalgo.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/HMAC.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/RIPEMD.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/MD2.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
creating build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/CAST.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/blockalgo.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/DES3.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/ARC2.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_v1_5.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_OAEP.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/DES.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/XOR.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/AES.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/Blowfish.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/ARC4.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
creating build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/Counter.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/winrandom.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/number.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/RFC1751.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/py3compat.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/randpool.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/_number_new.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/asn1.py -> build/lib.linux-x86_64-3.9/Crypto/Util
creating build/lib.linux-x86_64-3.9/Crypto/Random
copying lib/Crypto/Random/_UserFriendlyRNG.py -> build/lib.linux-x86_64-3.9/Crypto/Random
copying lib/Crypto/Random/random.py -> build/lib.linux-x86_64-3.9/Crypto/Random
copying lib/Crypto/Random/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Random
creating build/lib.linux-x86_64-3.9/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaAccumulator.py -> build/lib.linux-x86_64-3.9/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaGenerator.py -> build/lib.linux-x86_64-3.9/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/SHAd256.py -> build/lib.linux-x86_64-3.9/Crypto/Random/Fortuna
creating build/lib.linux-x86_64-3.9/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/posix.py -> build/lib.linux-x86_64-3.9/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/rng_base.py -> build/lib.linux-x86_64-3.9/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/fallback.py -> build/lib.linux-x86_64-3.9/Crypto/Random/OSRNG
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest
copying lib/Crypto/SelfTest/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest
copying lib/Crypto/SelfTest/st_common.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_CAST.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/common.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES3.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC4.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_XOR.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_AES.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC2.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_15.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_Blowfish.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_oaep.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/common.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_HMAC.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_RIPEMD.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA512.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA224.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD5.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD4.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA256.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA384.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD2.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_KDF.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_chaffing.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_rfc1751.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_AllOrNothing.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_importKey.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_ElGamal.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_RSA.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_DSA.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_random.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test__UserFriendlyRNG.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_rpoolcompat.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_SHAd256.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaGenerator.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaAccumulator.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/Fortuna
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_nt.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_winrandom.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_posix.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_fallback.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_generic.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_asn1.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_winrandom.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_number.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_Counter.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_pss.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_15.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Signature
creating build/lib.linux-x86_64-3.9/Crypto/Protocol
copying lib/Crypto/Protocol/KDF.py -> build/lib.linux-x86_64-3.9/Crypto/Protocol
copying lib/Crypto/Protocol/Chaffing.py -> build/lib.linux-x86_64-3.9/Crypto/Protocol
copying lib/Crypto/Protocol/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Protocol
copying lib/Crypto/Protocol/AllOrNothing.py -> build/lib.linux-x86_64-3.9/Crypto/Protocol
creating build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/ElGamal.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/_DSA.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/_RSA.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/_slowmath.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/DSA.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/pubkey.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/RSA.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
creating build/lib.linux-x86_64-3.9/Crypto/Signature
copying lib/Crypto/Signature/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_PSS.py -> build/lib.linux-x86_64-3.9/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_v1_5.py -> build/lib.linux-x86_64-3.9/Crypto/Signature
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
running build_ext
running build_configure
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py", line 456, in <module>
core.setup(**kw)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/core.py", line 148, in setup
dist.run_commands()
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 299, in run
self.run_command('build')
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py", line 251, in run
self.run_command(cmd_name)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py", line 278, in run
raise RuntimeError("autoconf error")
RuntimeError: autoconf error
----------------------------------------
ERROR: Failed building wheel for pycrypto
Running setup.py clean for pycrypto
Failed to build pycrypto
Installing collected packages: rsa, pycrypto, alipay-sdk-python
Running setup.py install for pycrypto ... error
ERROR: Command errored out with exit status 1:
command: /home/dogger/miniconda3/envs/djg3211env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py'"'"'; __file__='"'"'/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-a1s4qdgq/install-record.txt --single-version-externally-managed --compile --install-headers /home/dogger/miniconda3/envs/djg3211env/include/python3.9/pycrypto
cwd: /tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/
Complete output (191 lines):
running install
/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/Crypto
copying lib/Crypto/__init__.py -> build/lib.linux-x86_64-3.9/Crypto
copying lib/Crypto/pct_warnings.py -> build/lib.linux-x86_64-3.9/Crypto
creating build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/SHA.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/SHA384.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/SHA224.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/SHA256.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/SHA512.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/MD5.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/MD4.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/hashalgo.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/HMAC.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/RIPEMD.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
copying lib/Crypto/Hash/MD2.py -> build/lib.linux-x86_64-3.9/Crypto/Hash
creating build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/CAST.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/blockalgo.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/DES3.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/ARC2.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_v1_5.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_OAEP.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/DES.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/XOR.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/AES.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/Blowfish.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
copying lib/Crypto/Cipher/ARC4.py -> build/lib.linux-x86_64-3.9/Crypto/Cipher
creating build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/Counter.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/winrandom.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/number.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/RFC1751.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/py3compat.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/randpool.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/_number_new.py -> build/lib.linux-x86_64-3.9/Crypto/Util
copying lib/Crypto/Util/asn1.py -> build/lib.linux-x86_64-3.9/Crypto/Util
creating build/lib.linux-x86_64-3.9/Crypto/Random
copying lib/Crypto/Random/_UserFriendlyRNG.py -> build/lib.linux-x86_64-3.9/Crypto/Random
copying lib/Crypto/Random/random.py -> build/lib.linux-x86_64-3.9/Crypto/Random
copying lib/Crypto/Random/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Random
creating build/lib.linux-x86_64-3.9/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaAccumulator.py -> build/lib.linux-x86_64-3.9/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaGenerator.py -> build/lib.linux-x86_64-3.9/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/SHAd256.py -> build/lib.linux-x86_64-3.9/Crypto/Random/Fortuna
creating build/lib.linux-x86_64-3.9/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/posix.py -> build/lib.linux-x86_64-3.9/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/rng_base.py -> build/lib.linux-x86_64-3.9/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/fallback.py -> build/lib.linux-x86_64-3.9/Crypto/Random/OSRNG
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest
copying lib/Crypto/SelfTest/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest
copying lib/Crypto/SelfTest/st_common.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_CAST.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/common.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES3.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC4.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_XOR.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_AES.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC2.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_15.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_Blowfish.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_oaep.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Cipher
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/common.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_HMAC.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_RIPEMD.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA512.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA224.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD5.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD4.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA256.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA384.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD2.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Hash
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_KDF.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_chaffing.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_rfc1751.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_AllOrNothing.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Protocol
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_importKey.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_ElGamal.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_RSA.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_DSA.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/PublicKey
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_random.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test__UserFriendlyRNG.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_rpoolcompat.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_SHAd256.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaGenerator.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaAccumulator.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/Fortuna
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_nt.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_winrandom.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_posix.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_fallback.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_generic.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Random/OSRNG
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_asn1.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_winrandom.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_number.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_Counter.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Util
creating build/lib.linux-x86_64-3.9/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_pss.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_15.py -> build/lib.linux-x86_64-3.9/Crypto/SelfTest/Signature
creating build/lib.linux-x86_64-3.9/Crypto/Protocol
copying lib/Crypto/Protocol/KDF.py -> build/lib.linux-x86_64-3.9/Crypto/Protocol
copying lib/Crypto/Protocol/Chaffing.py -> build/lib.linux-x86_64-3.9/Crypto/Protocol
copying lib/Crypto/Protocol/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Protocol
copying lib/Crypto/Protocol/AllOrNothing.py -> build/lib.linux-x86_64-3.9/Crypto/Protocol
creating build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/ElGamal.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/_DSA.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/_RSA.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/_slowmath.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/DSA.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/pubkey.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
copying lib/Crypto/PublicKey/RSA.py -> build/lib.linux-x86_64-3.9/Crypto/PublicKey
creating build/lib.linux-x86_64-3.9/Crypto/Signature
copying lib/Crypto/Signature/__init__.py -> build/lib.linux-x86_64-3.9/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_PSS.py -> build/lib.linux-x86_64-3.9/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_v1_5.py -> build/lib.linux-x86_64-3.9/Crypto/Signature
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
running build_ext
running build_configure
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py", line 456, in <module>
core.setup(**kw)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/core.py", line 148, in setup
dist.run_commands()
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/site-packages/setuptools/command/install.py", line 68, in run
return orig.install.run(self)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/command/install.py", line 546, in run
self.run_command('build')
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py", line 251, in run
self.run_command(cmd_name)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/dogger/miniconda3/envs/djg3211env/lib/python3.9/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py", line 278, in run
raise RuntimeError("autoconf error")
RuntimeError: autoconf error
----------------------------------------
ERROR: Command errored out with exit status 1: /home/dogger/miniconda3/envs/djg3211env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py'"'"'; __file__='"'"'/tmp/pip-install-_6m6pig5/pycrypto_1100faf30763497bb84aba73aeaa1052/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-a1s4qdgq/install-record.txt --single-version-externally-managed --compile --install-headers /home/dogger/miniconda3/envs/djg3211env/include/python3.9/pycrypto Check the logs for full command output.
Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装。但是如果单独安装gcc以及g++比较麻烦,幸运的是,Ubuntu提供了一个build-essential软件包。查看该软件包的依赖关系:
y@ubuntu:~$ apt-cache depends build-essential
build-essential
|Depends: libc6-dev
Depends: <libc-dev>
libc6-dev
Depends: gcc
Depends: g++
Depends: make
make-guile
Depends: dpkg-dev
也就是说,安装了该软件包,编译c/c++所需要的软件包也都会被安装。因此如果想在Ubuntu中编译c/c++程序,只需要安装该软件包就可以了。
安装方法如下:
$sudo apt install build-essential
如下所示,显示安装成功:
(djg3211env) dogger@thinkos:~/WebProjects/aisitev$ pip install alipay-sdk-python==3.3.398
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting alipay-sdk-python==3.3.398
Using cached https://mirrors.aliyun.com/pypi/packages/7c/49/5594b0bdc8466096a620e9a3936a627b7fbfc6f27ab0045c8874573d6fd5/alipay_sdk_python-3.3.398-py3-none-any.whl (8.8 MB)
Collecting pycrypto
Using cached https://mirrors.aliyun.com/pypi/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz (446 kB)
Requirement already satisfied: rsa in /home/dogger/miniconda3/envs/djg3211env/lib/python3.9/site-packages (from alipay-sdk-python==3.3.398) (4.8)
Requirement already satisfied: pyasn1>=0.1.3 in /home/dogger/miniconda3/envs/djg3211env/lib/python3.9/site-packages (from rsa->alipay-sdk-python==3.3.398) (0.4.8)
Building wheels for collected packages: pycrypto
Building wheel for pycrypto (setup.py) ... done
Created wheel for pycrypto: filename=pycrypto-2.6.1-cp39-cp39-linux_x86_64.whl size=502139 sha256=7793902e3e007a7e30f2383657da18f0121672b762729939be718f6252acf3aa
Stored in directory: /home/dogger/.cache/pip/wheels/79/f9/be/bfa5794afe04609ed4c88b25fb9511ac999d7b7f360fe0b1e6
Successfully built pycrypto
Installing collected packages: pycrypto, alipay-sdk-python
Successfully installed alipay-sdk-python-3.3.398 pycrypto-2.6.1