使用 python 打开 Anaconda 提示符

Opening Anaconda Prompt with python

我想创建一个脚本来帮助我安装 Spyder 的软件包。因此,我想使用 Python 并让脚本首先打开 Anaconda Prompt,然后执行命令,然后关闭 window。

但是,我可以让它打开计算器之类的东西,但它似乎无法打开命令提示符。打开我使用的计算器:

import os
os.popen("C:\Windows\System32\calc.exe")

如何让它打开命令提示符?

我们必须结合 Windows 批处理语言的一些知识,a previous SO answer 的一些指导,并从您通常使用的特定 Windows 开始菜单快捷方式中提取关键信息启动 Anaconda Prompt。

首先,在“开始”菜单中,right-click“Anaconda Prompt”快捷方式和select“打开文件位置”。在文件资源管理器中,快捷方式文件上的 right-click 并打开其属性。在“快捷方式”选项卡中,仔细查看“目标:”字段中的命令。如果您要 运行 在命令提示符 window 中执行此命令,它应该将该命令提示符 window 转换为 Anaconda 提示符以用于所有意图和目的。

我们只需要调用 cmd.exe "/K" 之后“目标:”字段中的命令部分。它应该看起来像这样,调用 Anaconda 安装目录中的 activate.bat 文件(或“miniconda”,我使用的更简洁的版本):

C:\Users\%USERNAME%\miniconda3\Scripts\activate.bat C:\Users\%USERNAME%\miniconda3 

参数 C:\Users\%USERNAME%\miniconda3 决定了 Anaconda Prompt 启动时加载的特定 Conda 环境。将其保留为基本 miniconda3 文件夹的路径将加载“基本”环境,这是从“开始”菜单快捷方式启动 Anaconda Prompt 时的默认环境。如果您想加载不同的环境,请改为 C:\Users\%USERNAME%\miniconda3\envs\custom-env-name 的路径(重点是,将 \envs\custom-env-name 附加到您的 Anaconda/miniconda 安装目录)。

出于本示例的目的,我们将[运行activate.bat到指定Conda环境的两条路径的本文]称为START_ANACONDA_CMD。至于要在指定的 Conda 环境中 运行 安装软件包的命令,我们将其称为 PACKAGE_INSTALL_CMD_1PACKAGE_INSTALL_CMD_2.

您应该尝试从 Python 执行的 os.system 调用如下:

os.system(r"""start "My Spyder Package Installer" /wait cmd /c "START_ANACONDA_CMD&PACKAGE_INSTALL_CMD_1&PACKAGE_INSTALL_CMD_2" """)

备注:

Carries out the command specified by string and then stops.

  • 运行 一系列带有 cmd /c 的命令,通过将命令与 & 字符连接起来。不要在示例中显示的命令周围添加额外的 " 引号。

  • 我将整个 os.system 命令字符串包装在 r""" """ 中,否则您将不得不转义 " 引号和路径中的任何反斜杠。

一旦你有了 START_ANACONDA_CMD,一个不错的小测试是打开一个 Python 解释器和 运行 以下内容:

os.system(r"""start /wait cmd /c "START_ANACONDA_CMD&conda info&timeout /t 10" """)

这应该会在指定的 Conda 环境 运行 conda info 中打开命令提示符 window,然后等待 10 秒再退出。