virtualenvwrapper,来自 python 脚本的 add2virtualenv

virtualenvwrapper, add2virtualenv from python script

我有一个包含类似文件的项目:

├── 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的命令是shellfunctions定义在virtualenvwrapper.sh;要调用它们,您需要先在同一个 shell 中获取 virtualenvwrapper.sh 的来源。还要注意他们使用 bashzsh 但不使用 /bin/sh.

所以我的建议是创建一个 bash 脚本:

#! /usr/bin/env bash
source `which virtualenvwrapper.sh`
add2virtualenv ""

并将其称为子进程:

subprocess.getstatusoutput(f'myscript FULL_PATH_TO_PROJECT/main_folder')