sarugaku / shellingham

Tool to Detect Surrounding Shell
ISC License
221 stars 33 forks source link

xonsh + pipenv / shellingham woes #11

Closed rca closed 6 years ago

rca commented 6 years ago

Following up from pypa/pipenv#498, where I describe some issues using pipenv with xonsh. I had been using pipenv and xonsh without issue on an older machine (having a months old install of both pipenv and xonsh. that machine is gone now; so i don't know the package versions, unfortunately), and am now running into problems that make this environment unusable on a brand new machine, with a fresh Mac OS + Python 3.6 install [1].

To start, one of the symptoms is that processes just go into the background after running pipenv shell. For example, in a fresh iTerm2 shell, I'm trying to launch vi and as soon as I hit enter, the process immediately backgrounds itself:

Last login: Fri Sep  7 15:09:17 on ttys032
berto@theMBP ~
$ $SHELL
'/usr/local/bin/xonsh'
berto@theMBP ~
$ cd ~/Projects/home/ink/
berto@theMBP ~/Projects/home/ink master@19e99fc
$ pipenv shell
Launching subshell in virtual environment…
(ink-a2hdD_Vz) berto@theMBP ~/Projects/home/ink master@19e99fc
$ vi
^Z
(ink-a2hdD_Vz) berto@theMBP ~/Projects/home/ink master@19e99fc

A second symptom is that running pip install within the pipenv somehow doesn't install in the virstualenv:

berto@theMBP ~/Projects/home/ink master@19e99fc
$ pip freeze > ~/tmp/pip.1.txt
berto@theMBP ~/Projects/home/ink master@19e99fc
$ pipenv shell
Launching subshell in virtual environment…
(ink-a2hdD_Vz) berto@theMBP ~/Projects/home/ink master@19e99fc
$ which pip
/Users/berto/.local/share/virtualenvs/ink-a2hdD_Vz/bin/pip
(ink-a2hdD_Vz) berto@theMBP ~/Projects/home/ink master@19e99fc
$ pip install -e .
Obtaining file:///Users/berto/Projects/home/ink
[...]
Successfully installed ink
(ink-a2hdD_Vz) berto@theMBP ~/Projects/home/ink master@19e99fc
$ exit
# NOTE: no longer in the pipenv shell
berto@theMBP ~/Projects/home/ink master@19e99fc
$ which pip
/usr/local/bin/pip
berto@theMBP ~/Projects/home/ink master@19e99fc
$ pip freeze > ~/tmp/pip.2.txt
berto@theMBP ~/Projects/home/ink master@19e99fc
$ diff -u ~/tmp/pip.1.txt ~/tmp/pip.2.txt
--- /Users/berto/tmp/pip.1.txt  2018-09-07 15:15:13.000000000 -0400
+++ /Users/berto/tmp/pip.2.txt  2018-09-07 15:15:28.000000000 -0400
@@ -4,6 +4,7 @@
 docker-pycreds==0.3.0
 gnureadline==6.3.8
 idna==2.7
+-e git+git@git:berto/ink.git@19e99fc075bf75eaf89fa0c4d61884e3546189a5#egg=ink
 Jinja2==2.10
 MarkupSafe==1.0
 pipenv==2018.7.1

When I switch back to bash with chsh -s /bin/bash and run the commands above, pipenv works the way I expect. Please let me know if there's any more info I can provide.

Thank you!

[1] High Sierra v 10.13.6 with Python 3.6.6 from python.org (and no Python things installed via Homebrew).

uranusjr commented 6 years ago

This is probably not related to Shellingham. It only detects the shell, so it is working properly if xonsh is found correctly. The logic to spawn shells is in Pipenv.

I’ll close this for now and track this in the Pipenv issue. The above information can be easily accessed since there is a linkback :)

rca commented 6 years ago

@uranusjr I'm sure you're already aware, but the issue I referenced above is also a closed issue. How do you propose this remains on the radar; re-open the pipenv issue, open a new issue?

uranusjr commented 6 years ago

Oops, I was not aware of that, thanks for reminding. Reading the original issue, however, it does not really fit the issue you’re describing (it was created to track xonsh support in general). Could you open a new one with mentions to both issues for tracking?