Может ли сценарий Python активировать виртуальную среду, а затем запустить в ней интерактивный сеанс pdb? - PullRequest
0 голосов
/ 29 января 2020

На моей машине Linux я могу активировать виртуальную среду и начать сеанс интерактивной отладки с помощью следующих команд bash -

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

Может ли сценарий python достичь того же?

Первая команда source ~/pytorch-3.7-env/bin/activate терпит неудачу, когда я пытался выполнить ее в подоболочке, возможно, потому что source является встроенной bash -

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

Любые идеи?

Ответы [ 2 ]

2 голосов
/ 29 января 2020

Лучше всего использовать:

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

вверху файла.

или вы можете использовать подпроцесс : для выполнения команды

import subprocess
subprocess.call(". .FULL_PATH/pytorch-3.7-env/bin/python")
0 голосов
/ 29 января 2020

Может, но нет никаких причин: вы можете просто вызвать python virtualenv напрямую (~/pytorch-3.7-env/bin/python), и он будет работать в правильной среде. Вам не нужно для активации envs в неинтерактивной среде.

...