Hyperledger indy CenOS 7 indy-node环境搭建

官网推荐ubuntu,由于阿里云服务器 centos7的,尝试安装indy-node

基本环境:

Centos 7

python3.6.2


[chain@iz2zeivrkckulq2dtidztmz indy]$ pip install indy-node
Collecting indy-node
  Downloading https://files.pythonhosted.org/packages/7c/a5/b7a92afef3313f1ee536179d1ff67b56ccea2965cf1353781c8cae600062/indy-node-1.4.66.tar.gz (424kB)
    100% |████████████████████████████████| 430kB 1.0MB/s 
    Complete output from command python setup.py egg_info:
    FAIL: Requires Python 3.5 or later, but setup.py was run using 2.7.5
    NOTE: Installation failed. Run setup.py using python3
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-yGWwSM/indy-node/
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

pip install --upgrade pip


[chain@iz2zeivrkckulq2dtidztmz indy]$ pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 22kB/s 
Installing collected packages: pip
  Found existing installation: pip 9.0.1
    Uninstalling pip-9.0.1:
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/site-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/usr/lib/python2.7/site-packages/pip/req/req_set.py", line 778, in install
    requirement.uninstall(auto_confirm=True)
  File "/usr/lib/python2.7/site-packages/pip/req/req_install.py", line 754, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/usr/lib/python2.7/site-packages/pip/req/req_uninstall.py", line 115, in remove
    renames(path, new_path)
  File "/usr/lib/python2.7/site-packages/pip/utils/__init__.py", line 267, in renames
    shutil.move(old, new)
  File "/usr/lib64/python2.7/shutil.py", line 302, in move
    os.unlink(src)
OSError: [Errno 13] 权限不够: '/usr/bin/pip'

将/usr/bin/python3 拷贝成 /usr/bin/python

https://github.com/hyperledger/indy-node/blob/master/docs/start-nodes.md

[chain@iz2zeivrkckulq2dtidztmz Python-3.6.2]$ pip install indy-node
Collecting indy-node
  Using cached https://files.pythonhosted.org/packages/7c/a5/b7a92afef3313f1ee536179d1ff67b56ccea2965cf1353781c8cae600062/indy-node-1.4.66.tar.gz
    Complete output from command python setup.py egg_info:
    FAIL: Requires Python 3.5 or later, but setup.py was run using 2.7.5
    NOTE: Installation failed. Run setup.py using python3
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-8KccYS/indy-node/

怀疑是 python的环境变量设置不正确

rm -rf /usr/bin/python

ln -s /usr/local/python3/bin/python3 /usr/bin/python

配置环境变量

 wget http://pypi.python.org/packages/source/s/setuptools/setuptools-2.0.tar.gz


pip3 install indy-node
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 
Collecting xxx 
Could not fetch URL https://pypi.python.org/simple/xxxx/: There was a problem confirming the ssl certificate: Can’t connect to HTTPS URL because the SSL module is not available. - skipping 
Could not find a version that satisfies the requirement xxx (from versions: ) 
No matching distribution found for xxx
yum install 
 File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

因为yum包使用python2*等开发,修该为环境修改python3之后有问题,
解决:
修改文件/usr/bin/yum、/usr/libexec/urlgrabber-ext-down头中相应python为#!/usr/bin/python2.7

chain@iz2zeivrkckulq2dtidztmz ~]$ sudo yum install openssl-devel -y
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Determining fastest mirrors
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax
原因同上,修改为python2.7


手动下载indy-node包

Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 的区别

大部分python文件的头部都会写上 #!/usr/bin/python 或者 #!/usr/bin/env ,这个语句主要和运行模式有关,

如果我们用普通运行模式例如(linux) : python *.py 那么这个语句在此运行模式下无效。如果想让python程序像普通程序一样运行,例如:./*.py (文件要有可执行权限chmod a+x *.py),这个语句就起作用了,他用来为脚本语言指定解释器,通常认为用 #!/usr/bin/env python 要比 #!/usr/bin/python 更好,因为 python 解释器有时并不安装在默认路径,例如在虚拟环境中。

解释:

#!/usr/bin/env python

这种写法在你机器上安装了多个版本的python的时候有意义,这样声明的时候,会去取你机器的 PATH 中指定的第一个 python 来执行你的脚本。如果这时候你又配置了虚拟环境的话,那么这样写可以保证脚本会使用你虚拟环境中的 python 来执行。

#!/usr/bin/python
表示写死了就是要 /usr/bin/python 这个目录下 python 来执行你的脚本。这样写程序的可移植性就差了,如果此路径下python命令不存在就会报错。

所以一般情况还是用第一种写法。

[chain@iz2zeivrkckulq2dtidztmz indy-node-1.4.66]$ python setup.py egg_info
Download error on https://pypi.python.org/simple/pytest-runner/: unknown url type: https -- Some packages may not be found!
Couldn't find index page for 'pytest-runner' (maybe misspelled?)
Download error on https://pypi.python.org/simple/: unknown url type: https -- Some packages may not be found!
No local packages or working download links found for pytest-runner
Traceback (most recent call last):
  File "setup.py", line 101, in <module>
    'tools/diagnostics/nsreplay',
  File "/usr/local/python3/lib/python3.6/distutils/core.py", line 108, in setup
    _setup_distribution = dist = klass(attrs)
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools/dist.py", line 315, in __init__
    self.fetch_build_eggs(attrs['setup_requires'])
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools/dist.py", line 361, in fetch_build_eggs
    replace_conflicting=True,
  File "/usr/local/python3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 850, in resolve
    dist = best[req.key] = env.best_match(req, ws, installer)
  File "/usr/local/python3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1122, in best_match
    return self.obtain(req, installer)
  File "/usr/local/python3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1134, in obtain
    return installer(requirement)
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools/dist.py", line 429, in fetch_build_egg
    return cmd.easy_install(req)
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 659, in easy_install
    raise DistutilsError(msg)
distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('pytest-runner')

解决问题关键步骤:

lunix 系统中安装各个版本的python,需药重新安装python3 并设置环境变量

1、python3.6安装

    wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

  cd Python-3.6.2

./configure --prefix=/usr/local/python3 --enable-shared

make & make install
将usr/bin目录下python 移除 将编译好的python3 执行
ln -s /usr/local/python3/bin/python3 /usr/bin/python

    

2、setuptools安装

wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26

tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6

python setup.py build

python setup.py install


3、pip安装(重要步骤)

https://pypi.org/project/pip/8.0.2/#files 里找到 pip

wget --no-check-certificate  https://files.pythonhosted.org/packages/ce/15/ee1f9a84365423e9ef03d0f9ed0eba2fb00ac1fffdd33e7b52aea914d0f8/pip-8.0.2.tar.gz

python setup.py build

python setup.py install


3、所有的安装完毕后重新make & make install Python3.6.2

记得使用root 用户执行 

4、执行indy-node 安装

pip install indy-node 


终于走上了正轨...

[chain@iz2zeivrkckulq2dtidztmz pip-8.0.2]$ cd /usr/local/python3/bin/
[chain@iz2zeivrkckulq2dtidztmz bin]$ ls
2to3      easy_install      idle3    pip   pip3.5  pydoc3    python3    python3.6-config  python3.6m-config  pyvenv
2to3-3.6  easy_install-3.6  idle3.6  pip3  pip3.6  pydoc3.6  python3.6  python3.6m        python3-config     pyvenv-3.6
[chain@iz2zeivrkckulq2dtidztmz bin]$ cd /usr/bin/pip
-bash: cd: /usr/bin/pip: Not a directory
[chain@iz2zeivrkckulq2dtidztmz bin]$ cd /usr/bin/
[chain@iz2zeivrkckulq2dtidztmz bin]$ rm -rf pip
rm: cannot remove ‘pip’: Permission denied
[chain@iz2zeivrkckulq2dtidztmz bin]$ sudo rm -rf pip
[chain@iz2zeivrkckulq2dtidztmz bin]$ ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
ln: failed to create symbolic link ‘/usr/bin/pip’: Permission denied
[chain@iz2zeivrkckulq2dtidztmz bin]$ sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
[chain@iz2zeivrkckulq2dtidztmz bin]$ pip install indy-node
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    load_entry_point('pip==8.0.2', 'console_scripts', 'pip3')()
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools-19.6-py3.6.egg/pkg_resources/__init__.py", line 550, in load_entry_point
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools-19.6-py3.6.egg/pkg_resources/__init__.py", line 2710, in load_entry_point
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools-19.6-py3.6.egg/pkg_resources/__init__.py", line 2370, in load
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools-19.6-py3.6.egg/pkg_resources/__init__.py", line 2376, in resolve
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/__init__.py", line 15, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/vcs/subversion.py", line 9, in <module>
    from pip.index import Link
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/index.py", line 29, in <module>
    from pip.wheel import Wheel, wheel_ext
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/wheel.py", line 39, in <module>
    from pip._vendor.distlib.scripts import ScriptMaker
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/_vendor/distlib/scripts.py", line 14, in <module>
    from .compat import sysconfig, detect_encoding, ZipFile
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/_vendor/distlib/compat.py", line 66, in <module>
    from urllib.request import (urlopen, urlretrieve, Request, url2pathname,
ImportError: cannot import name 'HTTPSHandler'
[chain@iz2zeivrkckulq2dtidztmz bin]$ sudo yum install openssl-devel
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Loading mirror speeds from cached hostfile
Package 1:openssl-devel-1.0.2k-12.el7.x86_64 already installed and latest version
Nothing to do
[chain@iz2zeivrkckulq2dtidztmz bin]$ pip install indy-node
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    load_entry_point('pip==8.0.2', 'console_scripts', 'pip3')()
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools-19.6-py3.6.egg/pkg_resources/__init__.py", line 550, in load_entry_point
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools-19.6-py3.6.egg/pkg_resources/__init__.py", line 2710, in load_entry_point
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools-19.6-py3.6.egg/pkg_resources/__init__.py", line 2370, in load
  File "/usr/local/python3/lib/python3.6/site-packages/setuptools-19.6-py3.6.egg/pkg_resources/__init__.py", line 2376, in resolve
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/__init__.py", line 15, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/vcs/subversion.py", line 9, in <module>
    from pip.index import Link
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/index.py", line 29, in <module>
    from pip.wheel import Wheel, wheel_ext
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/wheel.py", line 39, in <module>
    from pip._vendor.distlib.scripts import ScriptMaker
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/_vendor/distlib/scripts.py", line 14, in <module>
    from .compat import sysconfig, detect_encoding, ZipFile
  File "/usr/local/python3/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg/pip/_vendor/distlib/compat.py", line 66, in <module>
    from urllib.request import (urlopen, urlretrieve, Request, url2pathname,
ImportError: cannot import name 'HTTPSHandler'
[chain@iz2zeivrkckulq2dtidztmz bin]$ pip install indy-node
Collecting indy-node
  Cache entry deserialization failed, entry ignored
  Using cached https://files.pythonhosted.org/packages/7c/a5/b7a92afef3313f1ee536179d1ff67b56ccea2965cf1353781c8cae600062/indy-node-1.4.66.tar.gz
Collecting indy-plenum==1.4.45 (from indy-node)
  Downloading https://files.pythonhosted.org/packages/d9/fc/e27d78b7a6dfcf4526dfacc569d0210763028daccad0cfee12919b7e9ccb/indy-plenum-1.4.45.tar.gz (663kB)
    100% |████████████████████████████████| 665kB 95kB/s 
Collecting indy-anoncreds==1.0.11 (from indy-node)
  Downloading https://files.pythonhosted.org/packages/72/e6/18b963e3f1120c0e3dca8868b61cf62a63f20d4f7f4e07aec746f8e638a8/indy-anoncreds-1.0.11.tar.gz
Collecting python-dateutil (from indy-node)
  Downloading https://files.pythonhosted.org/packages/cf/f5/af2b09c957ace60dcfac112b669c45c8c97e32f94aa8b56da4c6d1682825/python_dateutil-2.7.3-py2.py3-none-any.whl (211kB)
    100% |████████████████████████████████| 215kB 38kB/s 
Collecting timeout-decorator==0.4.0 (from indy-node)
  Downloading https://files.pythonhosted.org/packages/a2/bc/bc7395efa9212c5507c489cd348ad50ac437dbfc94fa5d88f87e58f9fa3c/timeout-decorator-0.4.0.tar.gz
Collecting jsonpickle==0.9.6 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/32/d5/2f47f03d3f64c31b0d7070b488274631d7567c36e81a9f744e6638bb0f0d/jsonpickle-0.9.6.tar.gz (67kB)
    100% |████████████████████████████████| 71kB 28kB/s 
Collecting ujson==1.33 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/98/8c/47949a4e454b7ee27cf82a81735414187368fb94bae94de0291903c9881b/ujson-1.33.zip (197kB)
    100% |████████████████████████████████| 204kB 55kB/s 
Collecting prompt_toolkit==0.57 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/e4/72/c542552c487cfdb733db8c8ce4267ed8952059529fe5ab699ecc5d8f8c62/prompt_toolkit-0.57-py3-none-any.whl (208kB)
    100% |████████████████████████████████| 215kB 73kB/s 
Collecting pygments==2.2.0 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/02/ee/b6e02dc6529e82b75bb06823ff7d005b141037cb1416b10c6f00fc419dca/Pygments-2.2.0-py2.py3-none-any.whl (841kB)
    100% |████████████████████████████████| 849kB 21kB/s 
Collecting rlp==0.5.1 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/1a/36/58a4ce5d4613e1a86f519508257ff9955ead0bb46876c79705882fe6c39e/rlp-0.5.1-py2.py3-none-any.whl
Collecting sha3==0.2.1 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/b3/b4/d23c8e8843226dcf54c6c533a6717d34d50358f74496cfa77e6e8c7e146a/sha3-0.2.1.tar.gz (616kB)
    100% |████████████████████████████████| 624kB 44kB/s 
Collecting leveldb (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/ec/c1/ca3b4199bd4073e6430076f1edd8061f2f548e831eeddc3cbc077ebaa0ca/leveldb-0.194.tar.gz (228kB)
    100% |████████████████████████████████| 235kB 63kB/s 
Collecting ioflo==1.5.4 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/d7/1a/a4af376edc47a152ce564b3374c6024e225d46ff3288aca9346e54b87ad9/ioflo-1.5.4.tar.gz (228kB)
    100% |████████████████████████████████| 235kB 28kB/s 
Collecting semver==2.7.9 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/40/56/d1f930872436300b474a447a8042091bd335119f0c58bd8647546d6c3dc0/semver-2.7.9.tar.gz
Collecting base58==1.0.0 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/3d/0a/ad8e05b85c0e07b82a89b0a6215d60e236011f72111c26b99b7cb9af45f5/base58-1.0.0.tar.gz
Collecting orderedset==2.0 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/87/87/11c59b112fa58fc23d77e4dc8dae4c7cc56ef7f4468e381a82fe2979a682/orderedset-2.0.tar.gz (78kB)
    100% |████████████████████████████████| 81kB 41kB/s 
Collecting sortedcontainers==1.5.7 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/b8/8c/d7de1a8f5bc878c1ff143aed7e0bb96846785b1d899fb15047376b4ad50e/sortedcontainers-1.5.7-py2.py3-none-any.whl
Collecting psutil==5.4.3 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/e2/e1/600326635f97fee89bf8426fef14c5c29f4849c79f68fd79f433d8c1bd96/psutil-5.4.3.tar.gz (412kB)
    100% |████████████████████████████████| 419kB 90kB/s 
Requirement already satisfied: pip<10.0.0 in /usr/local/python3/lib/python3.6/site-packages (from indy-plenum==1.4.45->indy-node)
Collecting portalocker==0.5.7 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/95/a7/45436b037b7c98ef7757c50d2b170c8cb0f978e6d2e4fc44bf64ca888a24/portalocker-0.5.7.tar.gz
Collecting pyzmq==17.0.0 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/58/0e/d40ee65acabb0776ccdade96812adc0438051ef6cff1ddbe4da463604867/pyzmq-17.0.0-cp36-cp36m-manylinux1_x86_64.whl (3.1MB)
    100% |████████████████████████████████| 3.1MB 66kB/s 
Collecting libnacl==1.6.1 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/60/55/0ce2a0b37264b8ec2be2765fdeefc5e7991b54f78bc9142120fa3f352782/libnacl-1.6.1-py2.py3-none-any.whl
Collecting six==1.11.0 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Collecting intervaltree==2.1.0 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/ca/c1/450d109b70fa58ca9d77972b02f69222412f9175ccf99fdeaf167be9583c/intervaltree-2.1.0.tar.gz
Collecting msgpack-python==0.4.6 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/15/ce/ff2840885789ef8035f66cd506ea05bdb228340307d5e71a7b1e3f82224c/msgpack-python-0.4.6.tar.gz (116kB)
    100% |████████████████████████████████| 122kB 51kB/s 
Collecting indy-crypto==0.4.1 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/8f/9a/e84e577e06be53a4d02a3afe30a407aec76dca810104cef642bd73fb3119/indy_crypto-0.4.1.tar.gz
Collecting python-rocksdb==0.6.9 (from indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/66/ec/5668df5564ef3bc6aa985ac5609ac716d4808b935f69e0e4720460a58b0e/python-rocksdb-0.6.9.tar.gz (179kB)
    100% |████████████████████████████████| 184kB 47kB/s 

新问题

Collecting attrs>=17.4.0 (from pytest->indy-crypto==0.4.1->indy-plenum==1.4.45->indy-node)
  Downloading https://files.pythonhosted.org/packages/41/59/cedf87e91ed541be7957c501a92102f9cc6363c623a7666d69d51c78ac5b/attrs-18.1.0-py2.py3-none-any.whl
Installing collected packages: jsonpickle, ujson, wcwidth, six, pygments, prompt-toolkit, rlp, sha3, leveldb, ioflo, semver, base58, orderedset, sortedcontainers, psutil, portalocker, pyzmq, libnacl, intervaltree, msgpack-python, atomicwrites, py, pluggy, more-itertools, attrs, pytest, indy-crypto, python-rocksdb, python-dateutil, indy-plenum, pyparsing, Charm-Crypto, lazy-object-proxy, indy-anoncreds, timeout-decorator, indy-node
  Running setup.py install for jsonpickle ... error
    Complete output from command /usr/local/python3/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-p4ow0tfv/jsonpickle/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-_v49_amn-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib
    creating build/lib/jsonpickle
    copying jsonpickle/util.py -> build/lib/jsonpickle
    copying jsonpickle/__init__.py -> build/lib/jsonpickle
    copying jsonpickle/unpickler.py -> build/lib/jsonpickle
    copying jsonpickle/handlers.py -> build/lib/jsonpickle
    copying jsonpickle/backend.py -> build/lib/jsonpickle
    copying jsonpickle/compat.py -> build/lib/jsonpickle
    copying jsonpickle/version.py -> build/lib/jsonpickle
    copying jsonpickle/tags.py -> build/lib/jsonpickle
    copying jsonpickle/pickler.py -> build/lib/jsonpickle
    creating build/lib/jsonpickle/ext
    copying jsonpickle/ext/__init__.py -> build/lib/jsonpickle/ext
    copying jsonpickle/ext/numpy.py -> build/lib/jsonpickle/ext
    running install_lib
    creating /usr/local/python3/lib/python3.6/site-packages/jsonpickle
    error: could not create '/usr/local/python3/lib/python3.6/site-packages/jsonpickle': Permission denied
    
    ----------------------------------------
Command "/usr/local/python3/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-p4ow0tfv/jsonpickle/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-_v49_amn-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-p4ow0tfv/jsonpickle/

看问题描述jsonpickle插件安装失败,原因是没有权限

sudo pip install jsonpickle

creating build/lib.linux-x86_64-3.6
    gcc -pthread -shared build/temp.linux-x86_64-3.6/./python/ujson.o build/temp.linux-x86_64-3.6/./python/objToJSON.o build/temp.linux-x86_64-3.6/./python/JSONtoObj.o build/temp.linux-x86_64-3.6/./lib/ultrajsonenc.o build/temp.linux-x86_64-3.6/./lib/ultrajsondec.o -o build/lib.linux-x86_64-3.6/ujson.cpython-36m-x86_64-linux-gnu.so
    running install_lib
    copying build/lib.linux-x86_64-3.6/ujson.cpython-36m-x86_64-linux-gnu.so -> /usr/local/python3/lib/python3.6/site-packages
    error: could not create '/usr/local/python3/lib/python3.6/site-packages/ujson.cpython-36m-x86_64-linux-gnu.so': Permission denied
    
    ----------------------------------------
Command "/usr/local/python3/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-n2j9qe1y/ujson/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-a5b3oets-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-n2j9qe1y/ujson/

直接sudo pip install indy-node

还是报错 只好一个个解决

Collecting attrs>=17.4.0 (from pytest->indy-crypto==0.4.1->indy-plenum==1.4.45->indy-node)
  Downloading http://mirrors.aliyun.com/pypi/packages/41/59/cedf87e91ed541be7957c501a92102f9cc6363c623a7666d69d51c78ac5b/attrs-18.1.0-py2.py3-none-any.whl
Installing collected packages: ujson, wcwidth, six, pygments, prompt-toolkit, rlp, sha3, leveldb, ioflo, semver, base58, orderedset, sortedcontainers, psutil, portalocker, pyzmq, libnacl, intervaltree, msgpack-python, py, pluggy, more-itertools, atomicwrites, attrs, pytest, indy-crypto, python-rocksdb, python-dateutil, indy-plenum, pyparsing, Charm-Crypto, lazy-object-proxy, indy-anoncreds, timeout-decorator, indy-node
  Running setup.py install for ujson ... done
  Running setup.py install for sha3 ... done
  Running setup.py install for leveldb ... done
  Running setup.py install for ioflo ... done
  Running setup.py install for semver ... done
  Running setup.py install for base58 ... done
  Running setup.py install for orderedset ... done
  Running setup.py install for psutil ... done
  Running setup.py install for portalocker ... done
  Running setup.py install for intervaltree ... done
  Running setup.py install for msgpack-python ... done
  Running setup.py install for indy-crypto ... done
  Running setup.py install for python-rocksdb ... error
    Complete output from command /usr/local/python3/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-odezo_5m/python-rocksdb/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-6vtkbgki-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/merge_operators.py -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/__init__.py -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/errors.py -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/interfaces.py -> build/lib.linux-x86_64-3.6/rocksdb
    creating build/lib.linux-x86_64-3.6/rocksdb/tests
    copying rocksdb/tests/__init__.py -> build/lib.linux-x86_64-3.6/rocksdb/tests
    copying rocksdb/tests/test_db.py -> build/lib.linux-x86_64-3.6/rocksdb/tests
    copying rocksdb/tests/test_memtable.py -> build/lib.linux-x86_64-3.6/rocksdb/tests
    copying rocksdb/tests/test_options.py -> build/lib.linux-x86_64-3.6/rocksdb/tests
    running egg_info
    writing python_rocksdb.egg-info/PKG-INFO
    writing dependency_links to python_rocksdb.egg-info/dependency_links.txt
    writing requirements to python_rocksdb.egg-info/requires.txt
    writing top-level names to python_rocksdb.egg-info/top_level.txt
    warning: manifest_maker: standard file '-c' not found
    
    reading manifest file 'python_rocksdb.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'python_rocksdb.egg-info/SOURCES.txt'
    copying rocksdb/_rocksdb.cpp -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/_rocksdb.pyx -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/backup.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/cache.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/comparator.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/db.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/env.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/filter_policy.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/iterator.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/logger.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/memtablerep.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/merge_operator.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/options.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/slice_.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/slice_transform.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/snapshot.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/status.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/std_memory.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/table_factory.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    copying rocksdb/universal_compaction.pxd -> build/lib.linux-x86_64-3.6/rocksdb
    creating build/lib.linux-x86_64-3.6/rocksdb/cpp
    copying rocksdb/cpp/comparator_wrapper.hpp -> build/lib.linux-x86_64-3.6/rocksdb/cpp
    copying rocksdb/cpp/filter_policy_wrapper.hpp -> build/lib.linux-x86_64-3.6/rocksdb/cpp
    copying rocksdb/cpp/memtable_factories.hpp -> build/lib.linux-x86_64-3.6/rocksdb/cpp
    copying rocksdb/cpp/merge_operator_wrapper.hpp -> build/lib.linux-x86_64-3.6/rocksdb/cpp
    copying rocksdb/cpp/slice_transform_wrapper.hpp -> build/lib.linux-x86_64-3.6/rocksdb/cpp
    copying rocksdb/cpp/utils.hpp -> build/lib.linux-x86_64-3.6/rocksdb/cpp
    copying rocksdb/cpp/write_batch_iter_helper.hpp -> build/lib.linux-x86_64-3.6/rocksdb/cpp
    running build_ext
    skipping 'rocksdb/_rocksdb.cpp' Cython extension (up-to-date)
    building 'rocksdb._rocksdb' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/rocksdb
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/python3/include/python3.6m -c rocksdb/_rocksdb.cpp -o build/temp.linux-x86_64-3.6/rocksdb/_rocksdb.o -std=c++11 -O3 -Wall -Wextra -Wconversion -fno-strict-aliasing -fno-rtti
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
    rocksdb/_rocksdb.cpp:549:27: fatal error: rocksdb/slice.h: No such file or directory
     #include "rocksdb/slice.h"
                               ^
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/local/python3/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-odezo_5m/python-rocksdb/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-6vtkbgki-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-odezo_5m/python-rocksdb/
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
【解决步骤】
按照经验,觉得应该是缺少了gcc模块, 所以操作 [ yum install -y gcc ]
安装完成后,再继续安装psutil还是报同样的错,发现报错不是  not found gcc,可能是某个功能模块缺失
发现需要安装多一些依赖的包:  [ yum install -y libffi-devel python-devel openssl-devel ]


sudo yum install zlib

sudo yum install zlib-devel
sudo yum install bzip2

sudo yum install bzip2-devel

如何安装rocksdb

依赖插件


Linux - CentOS

Upgrade your gcc to version at least 4.7 to get C++11 support: yum install gcc47-c++
Install gflags:

  wget https://gflags.googlecode.com/files/gflags-2.0-no-svn-files.tar.gz
  tar -xzvf gflags-2.0-no-svn-files.tar.gz
  cd gflags-2.0
  ./configure && make && sudo make install
Install snappy:

  wget https://snappy.googlecode.com/files/snappy-1.1.1.tar.gz
  tar -xzvf snappy-1.1.1.tar.gz
  cd snappy-1.1.1
  ./configure && make && sudo make install
Install zlib:

  sudo yum install zlib
  sudo yum install zlib-devel
Install bzip2:

  sudo yum install bzip2
  sudo yum install bzip2-devel
leveldb-devel snappy-devel

手动安装python rocksdb

sudo pip install "Cython>=0.20"
sudo pip install git+git://github.com/stephan-hof/[email protected]
 1010  cd rocksdb/
 1011  ls
 1012  cd ../
 1013  ls
 1014  cd ../
 1015  ls
 1016  cd rocksdb/
 1017  ls
 1018  vi Make
 1019  vi Makefile 
 1020  sudo git checkout 2.8.fb
 1021  sudo make shared_lib
 1022  ls
 1023  sudo cp librocksdb.so /usr/local/lib
 1024  sudo mkdir -p /usr/local/include/rocksdb/
 1025  sudo cp -r ./include/* /usr/local/include/
sudo git checkout 2.8.fb

sudo make shared_lib
修改环境变量,头文件库和链接库以及路径(直接在终端输入即可)
$ export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:`pwd`/include
$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:`pwd`
$ export LIBRARY_PATH=${LIBRARY_PATH}:`pwd`


参考资料

https://blog.csdn.net/linuxheik/article/details/52586574

https://pypi.org/project/python-rocksdb/

rocksDB 安装问题简单介绍

https://www.cnblogs.com/shuren/p/3981744.html

http://www.mamicode.com/info-detail-218321.html

https://www.nuget.org/packages/Snappy/ 安装



欢迎大家一起加入讨论!!!


猜你喜欢

转载自blog.csdn.net/wxb880114/article/details/80918811