Changes for page VirtualEnv

Last modified by David De La Harpe Golden on 2026/05/17 17:37

From version 2.1
edited by David De La Harpe Golden
on 2026/05/17 16:11
Change comment: There is no comment for this version
To version 8.1
edited by David De La Harpe Golden
on 2026/05/17 16:17
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -7,9 +7,14 @@
7 7  ...since virtualenv is now in the python stdlib, I have lately pared it down to two little helpers
8 8  
9 9  * ##mkve## - makes a new basic virtualenv.
10 -* ##ve## - launches a subshell with the virtualenv active - in contrast to the weird way official activate does it your _current_ shell i.e like vex but less fancy.
10 +* ##ve## - launches a subshell with the virtualenv active - in contrast to the weird way official activate does within the current shell i.e like ##vex## but less fancy.
11 11  
12 12  {{code language="bash"}}
13 +$ mkve BlahVenv
14 +$ ve BlahVenv
15 +$ pip install av
16 +$ exit
17 +{{/code}}
13 13  
14 14  
15 15  == mkve ==
... ... @@ -16,6 +16,8 @@
16 16  
17 17  {{code language="bash"}}
18 18  #!/bin/bash
24 +# make a new python venv:
25 +# mkve SomeVenv
19 19  
20 20  if [ -e "$1" ] ; then
21 21   echo >&2 "Already exists. Use python -m venv ... directly for complex args."
... ... @@ -22,12 +22,17 @@
22 22  else
23 23   exec python -m venv "$1"
24 24  fi
25 -{{code}}
26 26  
33 +{{/code}}
34 +
35 +
27 27  == ve ==
28 28  
29 29  {{code language="bash"}}
39 +
30 30  #!/bin/bash
41 +# use an existing python venv in a subshell, exit to exit:
42 +# ve SomeVenv
31 31  
32 32  if [ -f "$1/bin/activate" ]; then
33 33   exec bash --rcfile <(cat ~/.bashrc $1/bin/activate)
... ... @@ -34,7 +34,19 @@
34 34  else
35 35   echo >&2 "Missing Python Virtual Env (should have venv/bin/activate script)"
36 36  fi
37 -{{code}}
38 38  
50 +{{/code}}
39 39  
40 40  
53 +== Shell Prompt ==
54 +
55 +I have a fancy non-default prompt in my ##~/.bashrc## that shows a little snake if in a python vm
56 +
57 +{{code language="bash"}}
58 +# venvs themselves prefix these days, new ones created by stdlib honor this disable, allowing us to customize
59 +export VIRTUAL_ENV_DISABLE_PROMPT=1
60 +PS1='${debian_chroot:+\[\033[01;33m\]🌲($debian_chroot)\[\033[00m\]}${VIRTUAL_ENV:+\[\033[01;36m\]🐍($(basename $VIRTUAL_ENV))\[\033[00m\]}\[\033[38;5;108m\]\u@\h\[\033[38;5;128m\]:\[\033[38;5;139m\]\w\[\033[38;5;129m\]\$\[\033[00m\] '
61 +{{/code}}
62 +
63 +
64 +