steemit / steem-python

The official Python (3) library for the Steem Blockchain.
https://steem.io
MIT License
154 stars 100 forks source link

steempy importaccount - global name 'future_bytes' is not defined #176

Closed rossbulat closed 6 years ago

rossbulat commented 6 years ago

I am having issues importing my account, on both Ubuntu and macOS 10.13.3 using virtualenv.

Python version: 2.7

After the key phrase and wallet password prompt, I am met with this traceback:

Traceback (most recent call last): File "/steemit/bin/steempy", line 11, in load_entry_point('steem==0.18.3', 'console_scripts', 'steempy')() File "build/bdist.linux-x86_64/egg/steem/cli.py", line 1153, in legacyentry File "build/bdist.linux-x86_64/egg/steem/wallet.py", line 217, in addPrivateKey File "build/bdist.linux-x86_64/egg/steem/wallet.py", line 150, in newWallet File "build/bdist.linux-x86_64/egg/steembase/storage.py", line 367, in init File "build/bdist.linux-x86_64/egg/steembase/storage.py", line 388, in saveEncrytpedMaster File "build/bdist.linux-x86_64/egg/steembase/storage.py", line 412, in getEncryptedMaster File "build/bdist.linux-x86_64/egg/steembase/storage.py", line 402, in deriveChecksum NameError: global name 'future_bytes' is not defined

Is there a way to overcome this?

bobinson commented 6 years ago

Is it possible for you to setup Python 3.6 ?

rossbulat commented 6 years ago

@bobinson I am met with all sorts of errors installing some required modules using python3.6, to the point I do not feel it is stable / usable at this stage.

bobinson commented 6 years ago

@rossbulat - here is steps to install it on linux. With brew install it should be possible to install on Mac as well.

https://steemit.com/howto/@fortunex/installing-python-3-6-on-ubuntu-16-04

@rossbulat - the comments mentions how to deal with the modules as well.

rossbulat commented 6 years ago

Thank you @bobinson. My issues were with installing the modules, not with installing python itself. I will go ahead and see if following these steps fix the errors I was facing.

rossbulat commented 6 years ago

@bobinson I am having issues with the toml module:

Error: pkg_resources.ContextualVersionConflict: (toml 0.9.3 (/steemit3/lib/python3.6/site-packages/toml-0.9.3-py3.6.egg), Requirement.parse('toml==0.9.3.1'), {'steem'})

I downloaded the 0.9.3.1 package from https://pypi.python.org/pypi/toml/0.9.3 but it is installing as 0.9.3.

Additionally 0.9.4 is not supported.

Is this a known issue? Is there a workaround? Programs that break because of a 0.0.0.1 release should be addressed as short term changes are very likely.

bobinson commented 6 years ago

@rossbulat - its a known issue. The link I shared has the fix i the comments.

how to fix ?

edit /usr/local/lib/python3.6/dist-packages/steem-0.18.103.dist-info/METADATA and change

toml (==0.9.3.1)

to

toml (==0.9.3)

I wrote about it here : https://steemit.com/steem-python/@bobinson/toml-version-mismatch-errors-and-steem-python

rossbulat commented 6 years ago

@bobinson Thank you for the fix.

These installation issues should be fixed on the main branch quickly as they will be preventing people from experimenting with the software.

Even though these are simple fixes, pulling a later update that has not fixed the issues will result in having to implement them again which is troublesome.

causenet commented 6 years ago

I met the same error: NameError: global name 'future_bytes' is not defined

just change future_bytes to bytes and run setup.py again, will fix the problem.

cyon1c commented 6 years ago

@causenet Unfortunately no, that will not fix your issue. It will allow you to potentially run steem-python, but much of the underlying codebase utilizes the future_bytes utility to ensure bytes objects function the same in 2.7 as they do in 3.6.

That said, this appears to be a bug I missed due to relying too heavily on unit tests to ensure doneness. I will bring this into the next sprint and get it resolved.