New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trouble with pyenv after python was upgraded to 3.7 #164

Closed
deinspanjer opened this Issue Jul 2, 2018 · 5 comments

Comments

Projects
None yet
3 participants
@deinspanjer
Contributor

deinspanjer commented Jul 2, 2018

I'm struggling with my Mac environment here, and I would greatly appreciate it if you have any pointers.

I tried to run visidata today, and got the following error:

  Referenced from: /usr/local/Cellar/visidata/1.2/libexec/bin/python3.6
  Reason: image not found

I tried reinstalling visidata using brew reinstall visidata and the error changed to:

  File "/usr/local/bin/vd", line 10, in <module>
    from visidata import *
  File "/usr/local/Cellar/visidata/1.2/libexec/lib/python3.7/site-packages/visidata/__init__.py", line 7
    from .async import *
              ^
SyntaxError: invalid syntax

So I started digging and I found that it seems something has gotten goofed up between having pyenv on my system (which had not yet had an explicit 3.7.0 installed) and having the Homebrew version of python 3.7.0 installed via brew upgrade yesterday.

which python3
~/.pyenv/shims/python3

pyenv
pyenv 1.2.5

echo $PATH
/usr/local/Cellar/pyenv-virtualenv/1.1.3/shims:~/.pyenv/shims:/usr/local/bin:~/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

pyenv version
system (set by ~/.pyenv/version)

python3
Python 3.7.0 (default, Jun 29 2018, 20:13:13)

So I tried a few different fumblings and finally I decided to try removing pyenv from the path entirely. Did that, reinstalled visidata, but still the same error about invalid syntax.

I understand this likely isn't a "visidata" problem, but if there is anything you can suggest, I'd greatly appreciate it.

@anjakefala

This comment has been minimized.

Collaborator

anjakefala commented Jul 2, 2018

Hi Daniel!

Thank you so much for bringing this to our attention! 💯

Our current hypothesis is that the original error occurred because brew removed Python 3.6 and replaced it with Python 3.7. The VisiData installation could no longer find the 'image' for Python 3.6.

This was 'fixed' when you reinstalled VisiData, however the next error that occurred was due with the fact that Python3.7 introduced async as a reserved keyword. We currently have a file async.py and a decorator @async. Both will likely need to be changed.

The things we can do:

  1. We find a workaround using brew.
  2. We find a workaround using pyenv on a system with a brewed and non-brewed python.
  3. We release a patch where this will not be an issue anymore.

We will do (3), but it may be a while.

@deinspanjer

This comment has been minimized.

Contributor

deinspanjer commented Jul 3, 2018

Wow. I'm glad it surfaced something that will be relevant to others. I'll keep an eye out for new bits to test.

@anjakefala

This comment has been minimized.

Collaborator

anjakefala commented Jul 4, 2018

@deinspanjer

I do not hear about installation failures very often, and I am sure they happen, so I was very, very grateful for this issue. =)

We merged a tentative fix into stable and are going to be testing it and releasing over the next while.

If you want to play with it, this should do it:

git clone https://github.com/saulpw/visidata.git
cp -r visidata/visidata/* usr/local/Cellar/visidata/1.2/libexec/lib/python3.7/site-packages/visidata/

With the caution that our automated tests ran fine but I have not gone through the full testing and release process yet. :)

@anjakefala anjakefala reopened this Jul 4, 2018

@anjakefala

This comment has been minimized.

Collaborator

anjakefala commented Jul 7, 2018

@deinspanjer It is released and in homebrew! :D Please let me know if you encounter any other issues. ^^

@anjakefala anjakefala closed this Jul 7, 2018

@mycaule

This comment has been minimized.

mycaule commented Oct 14, 2018

It is possible to install visidata on a python2 environment. Then it breaks at runtime.

Maybe we can disallow the package to be installed with python2 in the first place.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment