问题描述
├── main_folder
├── my_folder
├── my_file.py
├── main_file.py
在 main_file.py
中,我试图运行以下命令:
import subprocess
subprocess.getstatusoutput(f'add2virtualenv FULL_PATH_TO_PROJECT/main_folder')
但作为回应,我得到了 (127,'/bin/sh: 1: add2virtualenv: not found')
我该如何解决它以便我可以在下面的 my_file.py
行中使用:
from main_file import something
解决方法
add2virtualenv
和其他 virtualenvwrapper 的命令是在 virtualenvwrapper.sh
中定义的 shell 函数;要调用它们,您首先需要在同一个 shell 中获取 virtualenvwrapper.sh
。另请注意,它们适用于 bash
或 zsh
,但不适用于 /bin/sh
。
所以我的建议是创建一个 bash 脚本:
#! /usr/bin/env bash
source `which virtualenvwrapper.sh`
add2virtualenv "$1"
并将其称为子进程:
subprocess.getstatusoutput(f'myscript FULL_PATH_TO_PROJECT/main_folder')