Оказывается, да, проблема не проста, но решение есть.
Сначала мне пришлось создать сценарий оболочки, чтобы обернуть команду «source». Тем не менее я использовал «.». вместо этого, потому что я читал, что лучше использовать его, чем источник для сценариев bash.
#!/bin/bash
. /path/to/env/bin/activate
Тогда из моего сценария python я могу просто сделать это:
import os
os.system('/bin/bash --rcfile /path/to/myscript.sh')
Целый трюк лежит внутри аргумента -rcfile.
Когда выход из интерпретатора python покидает текущую оболочку в активированной среде.
Win!