On 10/21/2023 11:32 AM, Larry Martell via Python-list wrote:
On Sat, Oct 21, 2023 at 9:49 AM Johannes Findeisen <mail...@hanez.org> wrote:

On Sat, 21 Oct 2023 09:01:18 -0400
Larry Martell via Python-list <python-list@python.org> wrote:

I have a python script, and from that I want to run another script in
a subprocess in a venv. What is the best way to do that? I could write
a file that activates the venv then runs the script, then run that
file, but that seems messy. Is there a better way?

How do you do that?

How? Open a file and write the commands I need then invoke that.

It sounds messy but not wrong...

I would activate the venv and then run my Python script. In the Python
script you can call another python script in a subprocess like this:

import sys
import subprocess

# https://docs.python.org/3/library/subprocess.html#popen-constructor
proc = subprocess.Popen([sys.executable, "/path/to/an/otherscript.py"])

# https://docs.python.org/3/library/subprocess.html#popen-objects
# Do your process communication/handling... proc.communicate(),
# proc.wait(), proc.terminate(), proc.kill() etc.

Is this the answer you are looking for?

Detailed docs: https://docs.python.org/3/library/subprocess.html

I know how to use Popen. What I was missing was running the script
using sys.executable. Thanks.

A nice feature of using sys.executable is that you automatically use the same Python installation as your invoking program is running with. On a system that has several different Python installations, that's a very good thing.

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to