Ubuntu 16.04 is very popular Linux distro and probably most of fresh Linux users use it. The problem with running steem-python on Ubuntu 16.04 is that the Ubuntu comes with Python 3.5 and steem-python requires Python 3.6.
What is steem-python?
It's a swiss army knife for Steem Python developers ;-) Accordingly to GitHub description,
steem-python is the official STEEM library for Python. It comes with a BIP38 encrypted wallet and a practical CLI utility called steempy
Install Python 3.6
We'll install Python 3.6 from PPA repositories, let's add new APT source,
$ sudo add-apt-repository ppa:jonathonf/python-3.6
OK
if you get error about missing add-apt-repository command, please install software-properties-common package: apt-get install software-properties-common
Now you can update APT database and install Python3.6, pip and required libssl-dev packages,
$ sudo apt-get update && sudo apt-get install python3.6 python3.6-dev libssl-dev
...
...
Get:6 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main amd64 Packages [4,492 B]
Get:7 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main Translation-en [2,028 B]
Fetched 24.6 kB in 0s (43.1 kB/s)
Reading package lists... Done
...
...
The following NEW packages will be installed:
libssl-dev python3.6 python3.6-dev
...
PIP for Python 3.6 doesn't exist in PPA, but we'll install it manually,
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3.6 get-pip.py
Install steem-python
$ sudo pip3.6 install -U steem
...
...
Successfully installed scrypt-0.8.0 steem-0.18.103 toml-0.9.3 toolz-0.8.2 ujson-1.35 voluptuous-0.10.5 w3lib-1.18.0
steem-python has been installed :) but there is one more issue to fix, steempy (CLI) won't work due to toml package issue...
$ steempy
...
...
Original exception was:
Traceback (most recent call last):
File "/usr/local/bin/steempy", line 7, in <module>
steem.cli.legacy()
File "/usr/local/lib/python3.6/dist-packages/steem/cli.py", line 83, in legacy
version=pkg_resources.require("steem")[0].version
File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 984, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 875, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (toml 0.9.3 (/usr/local/lib/python3.6/dist-packages), Requirement.parse('toml==0.9.3.1'), {'steem'})
This is known problem and easy to fix, the steem-python requires toml==0.9.3.1 but unfortunately the creator of toml messed up the package versions, and 0.9.3.1 version is recognized as 0.9.3... let's fix it,
$ grep toml /usr/local/lib/python3.6/dist-packages/steem-0.18.103-py3.6.egg-info/requires.txt
toml==0.9.3.1
All what you need to do is change the line in /usr/local/lib/python3.6/dist-packages/steem-0.18.103-py3.6.egg-info/requires.txt file,
from
toml==0.9.3.1
to
toml==0.9.3
when it's done you can run steempy,
$ steempy
usage: steempy [-h] [--node NODE] [--no-broadcast] [--no-wallet] [--unsigned]
[--expires EXPIRES] [--verbose VERBOSE] [--version]
{set,config,info,changewalletpassphrase,addkey,parsewif,delkey,getkey,listkeys,listaccounts,upvote,downvote,transfer,powerup,powerdown,powerdownroute,convert,balance,interest,permissions,allow,disallow,newaccount,importaccount,updatememokey,approvewitness,disapprovewitness,sign,broadcast,orderbook,buy,sell,cancel,resteem,follow,unfollow,setprofile,delprofile,witnessupdate,witnesscreate}
it works! let's do one more check,
$ steempy info
Yeah, looks good. Now we can check the steem-python module itself,
$ python3.6
Python 3.6.3 (default, Oct 6 2017, 08:44:35)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import steem
>>> s = steem.Steem()
>>> s.get_account('jamzed')
{'id': 103323, 'name': 'jamzed', 'owner': {'weight_threshold': 1, 'account_auths': [], 'key_auths': [['STM7ss8gKeorUBd2GQ6GbgUWukevnGTWbA7UDbYAPvMDcpecKN9Ni', 1]]}, 'active': {'weight_threshold': 1, 'account_auths': [], 'key_auths': [['STM7WXHqMkvi9Lcsq7Mun2SWchjF1uC33dNGiN9HShAQqDN8JpoGH', 1]]}, 'posting': {'weight_threshold': 1, 'account_auths': [['busy.app', 1], ['utopian.app', 1]], 'key_auths': [['STM6v4Fo2uVrziELGyqmS2yd7q1eJzfhJKMqN3KmrHN8sMwTnzzz5', 1]]}, 'memo_key': 'STM6kGHddusAbGnBE4D1w8RWhNezE2mvcftggKjLWZsD63ejVQDt3', 'json_metadata': '{"profile":{"name":"Patryk Kuźmicz","about":"[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo Click","location":"Kraków","website":"https://patryk.kuzmi.cz","profile_image":"https://i.imgur.com/NohuYO1.png"}}', 'proxy': '', 'last_owner_update': '2017-11-23T11:38:33', 'last_account_update': '2017-11-23T11:38:33', 'created': '2016-10-06T14:16:48', 'mined': False, 'owner_challenged': False, 'active_challenged': False, 'last_owner_proved': '1970-01-01T00:00:00', 'last_active_proved': '1970-01-01T00:00:00', 'recovery_account': 'steem', 'last_account_recovery': '1970-01-01T00:00:00', 'reset_account': 'null', 'comment_count': 0, 'lifetime_vote_count': 0, 'post_count': 69, 'can_vote': True, 'voting_power': 9250, 'last_vote_time': '2017-11-26T20:17:15', 'balance': '0.000 STEEM', 'savings_balance': '0.000 STEEM', 'sbd_balance': '0.171 SBD', 'sbd_seconds': '25606731', 'sbd_seconds_last_update': '2017-11-26T19:41:51', 'sbd_last_interest_payment': '2017-10-31T11:22:33', 'savings_sbd_balance': '0.000 SBD', 'savings_sbd_seconds': '0', 'savings_sbd_seconds_last_update': '1970-01-01T00:00:00', 'savings_sbd_last_interest_payment': '1970-01-01T00:00:00', 'savings_withdraw_requests': 0, 'reward_sbd_balance': '0.000 SBD', 'reward_steem_balance': '0.000 STEEM', 'reward_vesting_balance': '6.158415 VESTS', 'reward_vesting_steem': '0.003 STEEM', 'vesting_shares': '328049.905307 VESTS', 'delegated_vesting_shares': '0.000000 VESTS', 'received_vesting_shares': '0.000000 VESTS', 'vesting_withdraw_rate': '0.000000 VESTS', 'next_vesting_withdrawal': '1969-12-31T23:59:59', 'withdrawn': 0, 'to_withdraw': 0, 'withdraw_routes': 0, 'curation_rewards': 753, 'posting_rewards': 44017, 'proxied_vsf_votes': ['34134838232', 0, 0, 0], 'witnesses_voted_for': 22, 'average_bandwidth': '38261968148', 'lifetime_bandwidth': '348501000000', 'last_bandwidth_update': '2017-11-26T22:55:24', 'average_market_bandwidth': 1498648363, 'lifetime_market_bandwidth': '11610000000', 'last_market_bandwidth_update': '2017-11-26T19:41:03', 'last_post': '2017-11-26T15:35:27', 'last_root_post': '2017-11-22T12:35:57', 'vesting_balance': '0.000 STEEM', 'reputation': '337626802057', 'transfer_history': [], 'market_history': [], 'post_history': [], 'vote_history': [], 'other_history': [], 'witness_votes': ['aggroed', 'arcange', 'ausbitbank', 'busy.witness', 'clayop', 'complexring', 'drakos', 'furion', 'good-karma', 'gtg', 'jamzed', 'jesta', 'klye', 'lukestokes.mhth', 'moorkedi', 'netuoso', 'pfunk', 'pharesim', 'riverhead', 'someguy123', 'themarkymark', 'timcliff'], 'tags_usage': [], 'guest_bloggers': []}
Enjoy and build something big! ;-)
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for good information. Mostly works good.
I did some additional job.
apt-get install gcc
/usr/local/lib/python3.6/dist-packages/steem-0.18.103.dist-info/METADATA
steempy set nodes https://api.steemit.com
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
It work! thanks, after 3 hours trying I found your tuto. Thanks very much.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks, good to hear that ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
can you explane me how to intall in on kali linux. i have an error when installing
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Please paste the details.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This the ss , please help me
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
How did you install Python3.6? Seems it doesn't support ssl module. If you compiled it from sources, please install libssl-dev package and recompile it.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
OKe thank, can i get your contact. I think some time i need to ask something to you
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I’m available on steemit.chat, the same nick. ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Your contribution cannot be approved because you posted using the wrong category. The right category for your contribution is "Tutorial". Please when submitting contribution in the future, Kindly choose the correct category. Thank you.
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks, good to know. Is it possible to move it to "Tutorial" section?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
It's impossible to do, Except you delete this one and repost in the right category.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This post has received a 6.86 % upvote from @buildawhale thanks to: @jamzed. Send at least 1 SBD to @buildawhale with a post link in the memo field for a portion of the next vote.
To support our daily curation initiative, please vote on my owner, @themarkymark, as a Steem Witness
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Can you help ?
I am getting this error .
grep: /usr/local/lib/python3.6/dist-packages/steem-0.18.103-py3.6.egg-info/requires.txt: No such file or directory
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
You need to find the correct location of Steem module,
ls -la /usr/local/lib/python3.6/dist-packages/
and use updated path for further operations.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
thanks that helped , done installing python !! Are you on steemitchat or discord ?
Thanks again :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Good to hear that, I’m sitting on both ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I dont have this file: /usr/local/lib/python3.6/dist-packages/steem-0.18.103-py3.6.egg-info/requires.txt file
;(
there isnt even any requires.txt in any of the folders
Update:
I just created the folder with the file and the content and I am able to call steempy.. but not steempy info
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit