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