【问题标题】:Opening Anaconda Prompt with python使用 python 打开 Anaconda Prompt
【发布时间】:2021-12-27 21:12:58
【问题描述】:

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

但是,我可以让它打开例如计算器,但它似乎没有打开命令提示符。打开我使用的计算器:

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

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

【问题讨论】:

    标签: python operating-system command


    【解决方案1】:

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

    首先,从开始菜单中,右键单击“Anaconda Prompt”快捷方式并选择“打开文件位置”。在文件资源管理器中,右键单击快捷方式文件并打开其属性。在快捷方式选项卡中,仔细查看“目标:”字段中的命令。如果您要在命令提示符窗口中运行此命令,它应该将该命令提示符窗口转换为 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" """)
    

    注意事项:

    执行字符串指定的命令,然后停止。

    • 通过将命令与& 字符连接起来,使用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,然后等待 10 秒再退出。

    【讨论】:

    • 非常感谢您的清晰解释以及提供的工作示例。我已经能够从我的 Python 解释器打开 Conda Prompt。
    • @QtyPython2020 很高兴能帮上忙!如果它回答了您的问题,请在有机会时将我的回答标记为已接受的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2018-01-09
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    相关资源
    最近更新 更多