stacks-network / stacks-core

The Stacks blockchain implementation
https://docs.stacks.co
GNU General Public License v3.0
3.01k stars 667 forks source link

File "/usr/local/bin/blockstack", line 58 print result['result'] #341

Closed sparcusa closed 7 years ago

sparcusa commented 7 years ago

Just installed blockstack, no issues. But every command I run, I get the following:

blockstack configure File "/usr/local/bin/blockstack", line 58 print result['result'] ^ SyntaxError: Missing parentheses in call to 'print'

blockstack lookup timblee.id File "/usr/local/bin/blockstack", line 58 print result['result'] ^ SyntaxError: Missing parentheses in call to 'print'

I am running Ubuntu 16.04, Python 2.7.12. Downloaded and installed the current build on your front page.

jcnelson commented 7 years ago

Hi @sparcusa, thank you for reporting!

Are you sure that it's Python 2.7.12 that is actually executing the program? Does it happen in a virtualenv?

sparcusa commented 7 years ago

Running on a native host, no vm sparcusa@bigman:~$ python --version Python 2.7.12 sparcusa@bigman:~$ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 16.04.2 LTS Release: 16.04 Codename: xenial

jcnelson commented 7 years ago

Hey @sparcusa,

I was able to reproduce a similar set of issues when running on an Ubuntu 16.04 VM (but not this exact one). I'm not sure if this is also the case for you, but I was able to resolve them by removing old versions of blockstack_client, i.e. via sudo pip uninstall blockstack_client and sudo pip uninstall blockstack.

Can you confirm that you only have the latest version of Blockstack installed? This might be the reason.

Thanks!

sparcusa commented 7 years ago

Jude,

This was a fresh install downloaded directly from the Blockstack site.

Checking version generated same error

@bigman:~$ blockstack -version

File "/usr/local/bin/blockstack", line 58

print result['result']

           ^

SyntaxError: Missing parentheses in call to 'print'

Got this when I tried to uninstall the blockstack client

“Cannot uninstall requirement blockstack-client, not installed”

And this when I tried to uninstall blockstack

sudo pip uninstall blockstack

The directory '/home/sparcusa/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

Uninstalling blockstack-0.14.1.2:

/usr/local/bin/blockstack

/usr/local/bin/blockstack-core

/usr/local/bin/blockstack-server

/usr/local/bin/blockstack-snapshots

/usr/local/lib/python3.5/dist-packages/blockstack-0.14.1.2.dist-info/DESCRIPTION.rst

/usr/local/lib/python3.5/dist-packages/blockstack-0.14.1.2.dist-info/INSTALLER

/usr/local/lib/python3.5/dist-packages/blockstack-0.14.1.2.dist-info/METADATA

/usr/local/lib/python3.5/dist-packages/blockstack-0.14.1.2.dist-info/RECORD

/usr/local/lib/python3.5/dist-packages/blockstack-0.14.1.2.dist-info/WHEEL

/usr/local/lib/python3.5/dist-packages/blockstack-0.14.1.2.dist-info/metadata.json

/usr/local/lib/python3.5/dist-packages/blockstack-0.14.1.2.dist-info/top_level.txt

/usr/local/lib/python3.5/dist-packages/blockstack/init.py

/usr/local/lib/python3.5/dist-packages/blockstack/pycache/init.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack/pycache/version.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack/blockstackd.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/init.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/pycache/init.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack/lib/pycache/b40.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack/lib/pycache/hashing.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack/lib/atlas.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/b40.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/config.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/consensus.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/fast_sync.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/hashing.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/nameset/init.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/nameset/db.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/nameset/namedb.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/nameset/virtualchain_hooks.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/init.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/announce.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/nameimport.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/namespacepreorder.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/namespaceready.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/namespacereveal.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/preorder.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/register.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/revoke.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/transfer.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/operations/update.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/scripts.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/storage/init.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/storage/pycache/init.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack/lib/storage/pycache/auth.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack/lib/storage/auth.py

/usr/local/lib/python3.5/dist-packages/blockstack/lib/storage/crawl.py

/usr/local/lib/python3.5/dist-packages/blockstack/version.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/init.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/init.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/app.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/assets.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/b40.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/cli.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/client.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/constants.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/keys.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/method_parser.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/profile.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/proxy.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/resolve.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/rpc.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/rpc_runner.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/schemas.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/snv.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/storage.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/tx.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/user.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/version.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/pycache/zonefile.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/actions.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/app.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/assets.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/b40.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/init.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/pycache/init.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/pycache/safety.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/blockchain.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/crypto/init.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/crypto/pycache/init.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/crypto/pycache/bip38.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/crypto/pycache/utils.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/crypto/bip38.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/crypto/utils.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/init.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/pycache/init.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/pycache/common.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/_skel.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/blockstack_resolver.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/blockstack_server.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/common.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/dht.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/disk.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/http.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/drivers/s3.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/nameops.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/queue.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/registrar.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/safety.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/utxo/init.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/utxo/pycache/init.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/utxo/pycache/blockstack_utxo.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/utxo/pycache/utxo.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/utxo/blockstack_utxo.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/backend/utxo/utxo.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/cli.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/client.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/config.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/constants.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/data.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/keys.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/method_parser.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/init.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/pycache/announce.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/pycache/nameimport.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/pycache/namespacepreorder.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/pycache/namespaceready.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/pycache/namespacereveal.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/pycache/preorder.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/pycache/register.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/pycache/revoke.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/pycache/update.cpython-35.pyc

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/announce.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/nameimport.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/namespacepreorder.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/namespaceready.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/namespacereveal.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/preorder.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/register.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/revoke.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/transfer.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/operations/update.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/profile.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/proxy.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/resolve.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/rpc.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/rpc_runner.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/schemas.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/scripts.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/snv.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/storage.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/tx.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/user.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/utils.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/version.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/wallet.py

/usr/local/lib/python3.5/dist-packages/blockstack_client/zonefile.py

Proceed (y/n)?

Any ideas?

[EDIT: sensitive information removed by @jcnelson]

jcnelson commented 7 years ago

Hi @sparcusa,

I edited your post above to remove some sensitive information that Github included when you replied ;)

This execution trace is very helpful. Do you see how Blockstack was installed to the /usr/local/lib/python3.5/dist-packages/ directory? That means that it was installed by your version of pip to be executed by Python 3.5, not 2.7.

On your system, it looks like pip is configured to use python3 while your python command is probably aliased to python2. I think you can get around this by installing with sudo pip2 install blockstack (using pip2 should force your system to use Python 2.7).

Hope this helps!

the7erm commented 7 years ago

I'm experiencing the same issue.

https://github.com/blockstack/blockstack-core Instructed me to run this:

$ sudo apt-get update && sudo apt-get install -y python-pip python-dev libssl-dev libffi-dev rng-tools libgmp3-dev
$ sudo pip install blockstack --upgrade

Then to test the install run:

blockstack info 

I don't think using /usr/bin/python3 in the first line is the right way.

$ head /usr/local/bin/blockstack
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
    Blockstack-client
    ~~~~~
    copyright: (c) 2014-2015 by Halfmoon Labs, Inc.
    copyright: (c) 2016-2017 by Blockstack.org

    This file is part of Blockstack-client.

The correct way to invoke python2 would be:

#!/usr/bin/env python2

To invoke python 3 it'd be

#!/usr/bin/env python3

All that being said. All the print statements in /usr/local/bin/blockstack seem to be in python2 syntax, where they should be using print() parenthesis are required in python3.

the7erm commented 7 years ago

Ok so if python 3 isn't supported, then why in the world does it have python3 for the first line?

Traceback (most recent call last):
  File "/usr/local/bin/blockstack", line 28, in <module>
    raise Exception("Python 3 is not supported")
Exception: Python 3 is not supported

Running this line fixed everything.

sudo pip2 install blockstack --upgrade

I can now run:

blockstack info
jcnelson commented 7 years ago

Hi @the7erm, thanks for reporting this!

The script /usr/local/bin/blockstack is auto-generated by Python setuputils. If you used pip3, then a Python 3.x-compatible script will be generated. Similarly, a Python 2.x script will be created by pip2.

I will update the instructions to explicitly require pip2 instead of pip, since this seems to have affected multiple people.

jackzampolin commented 7 years ago

Instructions updated. Closing