Python脚本可以激活虚拟环境,然后在其中触发交互式pdb会话吗?

问题描述 投票:0回答:2

在Linux机器上,我可以使用以下bash命令激活虚拟环境并启动交互式调试会话-

source ~/pytorch-3.7-env/bin/activate
python -m pdb ~/python_project/testscript.py

python脚本可以达到相同的效果吗?

当我尝试在子shell中执行它时,第一个命令source ~/pytorch-3.7-env/bin/activate失败,可能是因为source是内置的bash-

>>> os.system("source pytorch-3.7-env/bin/activate")
sh: 1: source: not found
32512

任何想法?

python python-3.x pdb python-venv
2个回答
1
投票
最好的方法是使用:

#! ~/pytorch-3.7-env/bin/python

在文件顶部。

或您可以使用subprocess:执行命令

import subprocess subprocess.call(". .FULL_PATH/pytorch-3.7-env/bin/python")


0
投票
它可以,但是没有理由:您可以直接调用virtualenv的python(~/pytorch-3.7-env/bin/python),它将在正确的环境中执行,没有理由在非交互式环境中激活env。
© www.soinside.com 2019 - 2024. All rights reserved.