Python 脚本可以激活虚拟环境,然后在其中触发交互式 pdb 会话吗?
Can a Python script activate a virtual environment and then trigger an interactive pdb session within it?
在我的 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
有什么想法吗?
最好的方法是使用:
#! ~/pytorch-3.7-env/bin/python
在文件的顶部。
或
你可以使用 subprocess: 来执行命令
import subprocess
subprocess.call(". .FULL_PATH/pytorch-3.7-env/bin/python")
可以,但没有理由这样做:您可以直接调用 virtualenv 的 python (~/pytorch-3.7-env/bin/python
),它会在正确的环境中执行。您不需要在非交互式环境中激活环境。
在我的 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
有什么想法吗?
最好的方法是使用:
#! ~/pytorch-3.7-env/bin/python
在文件的顶部。
或 你可以使用 subprocess: 来执行命令
import subprocess
subprocess.call(". .FULL_PATH/pytorch-3.7-env/bin/python")
可以,但没有理由这样做:您可以直接调用 virtualenv 的 python (~/pytorch-3.7-env/bin/python
),它会在正确的环境中执行。您不需要在非交互式环境中激活环境。