Python 我如何使用;virtualenv.cli“u run”;方法来创建虚拟环境?

Python 我如何使用;virtualenv.cli“u run”;方法来创建虚拟环境?,python,python-3.x,virtualenv,Python,Python 3.x,Virtualenv,我有一个Python脚本,它通过以下方式创建虚拟环境: import os import subprocess virtualenv_path = os.path.join("/tmp", "my-environment") subprocess.run(["virtualenv", virtualenv_path], check=True) 这个很好用。然而,在本文中,我看到您可以“从Python内部触发Python环境的调用”。

我有一个Python脚本,它通过以下方式创建虚拟环境:

import os
import subprocess

virtualenv_path = os.path.join("/tmp", "my-environment")
subprocess.run(["virtualenv", virtualenv_path], check=True)
这个很好用。然而,在本文中,我看到您可以“从Python内部触发Python环境的调用”。为此,“您应该使用virtualenv.cli_run方法;这需要一个args参数,您可以在该参数中以与从命令行相同的方式传递选项。运行将返回一个包含有关所创建虚拟环境的数据的会话对象。”

因此,我运行了以下命令:

from virtualenv import cli_run

cli_run(["virtualenv", "/tmp/my-environment"])
但是,这给了我以下错误:

usage: virtualenv [--version] [--with-traceback] [-v | -q] [--read-only-app-data] [--app-data APP_DATA] [--reset-app-data] [--upgrade-embed-wheels] [--discovery {builtin}] [-p py] [--try-first-with py_exe]
                  [--creator {builtin,cpython3-posix,venv}] [--seeder {app-data,pip}] [--no-seed] [--activators comma_sep_list] [--clear] [--no-vcs-ignore] [--system-site-packages] [--symlinks | --copies] [--no-download | --download]
                  [--extra-search-dir d [d ...]] [--pip version] [--setuptools version] [--wheel version] [--no-pip] [--no-setuptools] [--no-wheel] [--no-periodic-update] [--symlink-app-data] [--prompt prompt] [-h]
                  dest
virtualenv: error: unrecognized arguments: /tmp/my-environment
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2

我真的不确定为什么这不起作用,因为我传递的参数与我在命令行上传递的参数相同。

作为virtualenv的一部分调用
cli\u run
时,不需要包含程序名,在本例中为“virtualenv”。只需包括您的目的地以及任何其他参数。

您是否尝试过不包括第一个参数“virtualenv”,看看像这样的运行函数通常已经包括了该参数,特别是如果它来自virtualenv?@user3832673,这是有效的。请随意添加它作为答案,我将勾选它。