Skip to content

Commit 302464a

Browse files
committed
make creation of new env optional
1 parent 702365b commit 302464a

File tree

1 file changed

+33
-27
lines changed

1 file changed

+33
-27
lines changed

gpt_code_ui/kernel_program/kernel_manager.py

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import gpt_code_ui.kernel_program.utils as utils
2121
import gpt_code_ui.kernel_program.config as config
2222

23+
USE_SEPARATE_VENV = False
24+
2325
# Set up globals
2426
messaging = None
2527
logger = config.get_logger()
@@ -171,38 +173,42 @@ def flush_kernel_msgs(kc, tries=1, timeout=0.2):
171173
def start_kernel(id: str):
172174
cwd = pathlib.Path(os.getcwd())
173175
kernel_dir = cwd / f'kernel.{id}'
174-
kernel_venv = kernel_dir / 'venv'
175-
kernel_venv_bindir = kernel_venv / 'bin'
176-
kernel_python_executable = kernel_venv_bindir / os.path.basename(sys.executable)
177-
kernel_connection_file = kernel_dir / "kernel_connection_file.json"
178-
launch_kernel_script_path = pathlib.Path(__file__).parent.resolve() / "launch_kernel.py"
179-
kernel_env = os.environ.copy()
180-
kernel_env['PATH'] = str(kernel_venv_bindir) + os.pathsep + kernel_env['PATH']
181176

182177
# Cleanup potential leftovers
183178
shutil.rmtree(kernel_dir, ignore_errors=True)
184-
185179
os.makedirs(kernel_dir)
186180

187-
# create virtual env inside kernel_venv directory
188-
subprocess.run([sys.executable, '-m', 'venv', kernel_venv, '--upgrade-deps', '--system-site-packages'])
189-
# install wheel because some packages do not like being installed without
190-
subprocess.run([kernel_python_executable, '-m', 'pip', 'install', 'wheel>=0.41,<1.0'])
191-
# install all default packages into the venv
192-
default_packages = [
193-
"ipykernel>=6,<7",
194-
"numpy>=1.24,<1.25",
195-
"dateparser>=1.1,<1.2",
196-
"pandas>=1.5,<1.6",
197-
"geopandas>=0.13,<0.14",
198-
"tabulate>=0.9.0<1.0",
199-
"PyPDF2>=3.0,<3.1",
200-
"pdfminer>=20191125,<20191200",
201-
"pdfplumber>=0.9,<0.10",
202-
"matplotlib>=3.7,<3.8",
203-
"openpyxl>=3.1.2,<4",
204-
]
205-
subprocess.run([kernel_python_executable, '-m', 'pip', 'install'] + default_packages)
181+
kernel_env = os.environ.copy()
182+
kernel_connection_file = kernel_dir / "kernel_connection_file.json"
183+
launch_kernel_script_path = pathlib.Path(__file__).parent.resolve() / "launch_kernel.py"
184+
185+
if not USE_SEPARATE_VENV:
186+
kernel_python_executable = sys.executable # TODO: here we could also pick up an already existing env by simply selecting the corresponding Python binary
187+
else:
188+
kernel_venv = kernel_dir / 'venv'
189+
kernel_venv_bindir = kernel_venv / 'bin'
190+
kernel_python_executable = kernel_venv_bindir / os.path.basename(sys.executable)
191+
kernel_env['PATH'] = str(kernel_venv_bindir) + os.pathsep + kernel_env['PATH']
192+
193+
# create virtual env inside kernel_venv directory
194+
subprocess.run([sys.executable, '-m', 'venv', kernel_venv, '--upgrade-deps', '--system-site-packages'])
195+
# install wheel because some packages do not like being installed without
196+
subprocess.run([kernel_python_executable, '-m', 'pip', 'install', 'wheel>=0.41,<1.0'])
197+
# install all default packages into the venv
198+
default_packages = [
199+
"ipykernel>=6,<7",
200+
"numpy>=1.24,<1.25",
201+
"dateparser>=1.1,<1.2",
202+
"pandas>=1.5,<1.6",
203+
"geopandas>=0.13,<0.14",
204+
"tabulate>=0.9.0<1.0",
205+
"PyPDF2>=3.0,<3.1",
206+
"pdfminer>=20191125,<20191200",
207+
"pdfplumber>=0.9,<0.10",
208+
"matplotlib>=3.7,<3.8",
209+
"openpyxl>=3.1.2,<4",
210+
]
211+
subprocess.run([kernel_python_executable, '-m', 'pip', 'install'] + default_packages)
206212

207213
# start the kernel using the virtual env python executable
208214
kernel_process = subprocess.Popen(

0 commit comments

Comments
 (0)