Pyethereum
pyethapp 依賴 secp256k1 在 OS X 上安裝失敗
試圖安裝pyethapp因為想從 python 使用 ETH。
secp256k1
但是無論我嘗試什麼都無法安裝依賴項。我正在使用
OS X 10.11.4
和Python 2.7.10
(也嘗試3.5.1
過)完整日誌如下所示(之後
pip install devp2p
):Collecting devp2p Using cached devp2p-0.7.1-py2.py3-none-any.whl Requirement already satisfied (use --upgrade to upgrade): coverage in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from devp2p) Requirement already satisfied (use --upgrade to upgrade): pycryptodome>=3.3.1 in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from devp2p) Requirement already satisfied (use --upgrade to upgrade): ipaddress in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from devp2p) Requirement already satisfied (use --upgrade to upgrade): gevent>=1.1.0 in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from devp2p) Requirement already satisfied (use --upgrade to upgrade): wheel in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from devp2p) Requirement already satisfied (use --upgrade to upgrade): pyelliptic in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from devp2p) Requirement already satisfied (use --upgrade to upgrade): rlp==0.4.4 in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from devp2p) Collecting secp256k1 (from devp2p) Using cached secp256k1-0.12.1.tar.gz Collecting tinyrpc (from devp2p) Requirement already satisfied (use --upgrade to upgrade): bitcoin in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from devp2p) Collecting tox (from devp2p) Using cached tox-2.3.1-py2.py3-none-any.whl Requirement already satisfied (use --upgrade to upgrade): greenlet>=0.4.9 in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from gevent>=1.1.0->devp2p) Requirement already satisfied (use --upgrade to upgrade): cffi>=1.3.0 in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from secp256k1->devp2p) Collecting virtualenv>=1.11.2 (from tox->devp2p) Using cached virtualenv-15.0.1-py2.py3-none-any.whl Collecting py>=1.4.17 (from tox->devp2p) Using cached py-1.4.31-py2.py3-none-any.whl Collecting pluggy<0.4.0,>=0.3.0 (from tox->devp2p) Using cached pluggy-0.3.1-py2.py3-none-any.whl Requirement already satisfied (use --upgrade to upgrade): pycparser in /Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages (from cffi>=1.3.0->secp256k1->devp2p) Building wheels for collected packages: secp256k1 Running setup.py bdist_wheel for secp256k1 ... error Complete output from command /Users/yanik/code/crypto_tickets/env2/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/tmpnHu8_Zpip-wheel- --python-tag cp27: 0.29.1 Using bundled libsecp256k1 running bdist_wheel running build running build_py creating build creating build/lib.macosx-10.11-intel-2.7 creating build/lib.macosx-10.11-intel-2.7/secp256k1 copying secp256k1/__init__.py -> build/lib.macosx-10.11-intel-2.7/secp256k1 running build_clib configure.ac:20: installing 'build-aux/compile' configure.ac:5: installing 'build-aux/config.guess' configure.ac:5: installing 'build-aux/config.sub' configure.ac:9: installing 'build-aux/install-sh' configure.ac:9: installing 'build-aux/missing' Makefile.am:3: error: Libtool library used but 'LIBTOOL' is undefined Makefile.am:3: The usual way to define 'LIBTOOL' is to add 'LT_INIT' Makefile.am:3: to 'configure.ac' and run 'aclocal' and 'autoconf' again. Makefile.am:3: If 'LT_INIT' is in 'configure.ac', make sure Makefile.am:3: its definition is in aclocal's search path. Makefile.am: installing 'build-aux/depcomp' parallel-tests: installing 'build-aux/test-driver' autoreconf: automake failed with exit status: 1 Traceback (most recent call last): File "<string>", line 1, in <module> File "/private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/setup.py", line 274, in <module> "Topic :: Security :: Cryptography" File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup dist.run_commands() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands self.run_command(cmd) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages/wheel/bdist_wheel.py", line 175, in run self.run_command('build') File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command self.distribution.run_command(command) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/build.py", line 127, in run self.run_command(cmd_name) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command self.distribution.run_command(command) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/setup.py", line 151, in run cwd=absolute("libsecp256k1"), File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/libsecp256k1/autogen.sh']' returned non-zero exit status 1 ---------------------------------------- Failed building wheel for secp256k1 Running setup.py clean for secp256k1 Failed to build secp256k1 Installing collected packages: secp256k1, tinyrpc, virtualenv, py, pluggy, tox, devp2p Running setup.py install for secp256k1 ... error Complete output from command /Users/yanik/code/crypto_tickets/env2/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-1E_fEw-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/yanik/code/crypto_tickets/env2/include/site/python2.7/secp256k1: 0.29.1 Using bundled libsecp256k1 running install running build running build_py creating build creating build/lib.macosx-10.11-intel-2.7 creating build/lib.macosx-10.11-intel-2.7/secp256k1 copying secp256k1/__init__.py -> build/lib.macosx-10.11-intel-2.7/secp256k1 running build_clib configure: WARNING: unrecognized options: --disable-shared, --enable-static, --with-pic checking build system type... x86_64-apple-darwin15.4.0 checking host system type... x86_64-apple-darwin15.4.0 checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/libsecp256k1/build-aux/install-sh -c -d checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes /private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/libsecp256k1/configure: line 2899: LT_INIT: command not found checking whether make supports nested variables... (cached) yes checking for pkg-config... /usr/local/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for ar... /usr/bin/ar checking for ranlib... /usr/bin/ranlib checking for strip... /usr/bin/strip checking for style of include used by make... GNU checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... none checking how to run the C preprocessor... gcc -E checking for gcc... gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... (cached) none needed checking whether gcc understands -c and -o together... (cached) yes checking dependency style of gcc... (cached) none checking how to run the C preprocessor... gcc -E checking for gcc option to accept ISO C89... (cached) none needed checking for brew... /usr/local/bin/brew checking if gcc supports -std=c89 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-unused-function -Wno-long-long -Wno-overlength-strings... yes checking if gcc supports -fvisibility=hidden... yes checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for __int128... yes checking for __builtin_expect... yes checking for x86_64 assembly availability... no checking gmp.h usability... yes checking gmp.h presence... yes checking for gmp.h... yes checking for __gmpz_init in -lgmp... yes checking for CRYPTO... yes checking for main in -lcrypto... yes checking for EC functions in libcrypto... no checking whether byte ordering is bigendian... no configure: Using assembly optimizations: no configure: Using field implementation: 64bit configure: Using bignum implementation: gmp configure: Using scalar implementation: 64bit configure: Using endomorphism optimizations: no configure: Building ECDSA pubkey recovery module: yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: error: cannot find input file: `Makefile.in' Traceback (most recent call last): File "<string>", line 1, in <module> File "/private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/setup.py", line 274, in <module> "Topic :: Security :: Cryptography" File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup dist.run_commands() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands self.run_command(cmd) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages/setuptools/command/install.py", line 61, in run return orig.install.run(self) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/install.py", line 573, in run self.run_command('build') File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command self.distribution.run_command(command) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/build.py", line 127, in run self.run_command(cmd_name) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command self.distribution.run_command(command) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/setup.py", line 194, in run cwd=build_temp, File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/libsecp256k1/configure', '--disable-shared', '--enable-static', '--disable-dependency-tracking', '--with-pic', '--enable-module-recovery', '--prefix', '/private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/build/temp.macosx-10.11-intel-2.7']' returned non-zero exit status 1 ---------------------------------------- Command "/Users/yanik/code/crypto_tickets/env2/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-1E_fEw-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/yanik/code/crypto_tickets/env2/include/site/python2.7/secp256k1" failed with error code 1 in /private/var/folders/bk/f_fg31cj7f3gcr30tnkndplh0000gn/T/pip-build-lvpfsX/secp256k1/
還試圖直接從 master安裝secp256k1-py 。有一些不同的擴展:
0.29.1 Using bundled libsecp256k1 running install running bdist_egg running egg_info downloading libsecp256k1 source code creating secp256k1.egg-info writing requirements to secp256k1.egg-info/requires.txt writing secp256k1.egg-info/PKG-INFO writing top-level names to secp256k1.egg-info/top_level.txt writing dependency_links to secp256k1.egg-info/dependency_links.txt writing manifest file 'secp256k1.egg-info/SOURCES.txt' reading manifest file 'secp256k1.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'secp256k1.egg-info/SOURCES.txt' installing library code to build/bdist.macosx-10.11-intel/egg running build_clib configure.ac:20: installing 'build-aux/compile' configure.ac:5: installing 'build-aux/config.guess' configure.ac:5: installing 'build-aux/config.sub' configure.ac:9: installing 'build-aux/install-sh' configure.ac:9: installing 'build-aux/missing' Makefile.am:3: error: Libtool library used but 'LIBTOOL' is undefined Makefile.am:3: The usual way to define 'LIBTOOL' is to add 'LT_INIT' Makefile.am:3: to 'configure.ac' and run 'aclocal' and 'autoconf' again. Makefile.am:3: If 'LT_INIT' is in 'configure.ac', make sure Makefile.am:3: its definition is in aclocal's search path. Makefile.am: installing 'build-aux/depcomp' parallel-tests: installing 'build-aux/test-driver' autoreconf: automake failed with exit status: 1 Traceback (most recent call last): File "setup.py", line 274, in <module> "Topic :: Security :: Cryptography" File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup dist.run_commands() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands self.run_command(cmd) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages/setuptools/command/install.py", line 67, in run self.do_egg_install() File "/Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages/setuptools/command/install.py", line 109, in do_egg_install self.run_command('bdist_egg') File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command self.distribution.run_command(command) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "/Users/yanik/code/crypto_tickets/env2/lib/python2.7/site-packages/setuptools/command/bdist_egg.py", line 160, in run self.run_command('build_clib') File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command self.distribution.run_command(command) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "setup.py", line 151, in run cwd=absolute("libsecp256k1"), File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/Users/yanik/code/crypto_tickets/pyethapp/secp256k1-py/libsecp256k1/autogen.sh']' returned non-zero exit status 1
您缺少 libtool。您可以使用自製軟體安裝它
brew install libtool
此外,我們建議您始終在 virtualenv 中執行 pyethapp。
我還想提一下我在 Ubuntu 上遇到此錯誤的經驗,因為我必須做更多工作才能使其正常工作。
此外,我需要安裝python-dev和libssl-dev庫。
ps 以防萬一整個sh 腳本在對我有用的 64 位 Ubuntu 14.04 機器上安裝 pyethapp。