如何利用 vscode 进行 ADS 的 Python 开发

​ 参考链接:[如何为开发设置 Visual Studio Code — ADS 高级设计系统 2026 (630) 文档 — How to Set up Visual Studio Code for Development — ADS Advanced Design System 2026 (630) documentation](file:///D:/Keysight/ADS2026/doc/python/de/html/pydocs/howto/vscode.html)

[创建基于 ADS 的 Python 虚拟环境 — ADS Advanced Design System 2026 (630) 文档 — Creating an ADS based Python virtual environment — ADS Advanced Design System 2026 (630) documentation](file:///D:/Keysight/ADS2026/doc/python/de/html/pydocs/howto/newvenv.html)

一、ADS 依赖于 HPEESOF_DIR 环境变量,要在自动化模式下运行,此变量必须设置为正在使用版本的 ADS 安装目录

  • bash:
export HPEESOF_DIR="D:/Keysight/ADS2026" >> ~/.bashrc
source ~/.bashrc
echo $HPEESOF_DIR
  • powershell:
[System.Environment]::SetEnvironmentVariable('HPEESOF_DIR', 'D:/Keysight/ADS2026', 'User')
$env:HPEESOF_DIR = [System.Environment]::GetEnvironmentVariable('HPEESOF_DIR', 'User')
echo $env:HPEESOF_DIR

二、在目标目录创建虚拟环境
在 E:\subject\signal 下创建一个专用 venv(名字你可改,这里用 .venv_ads),命令行用你熟悉的终端即可。你现在默认是 Git Bash,也给出 CMD/PowerShell 版本,任选其一执行。

  • bash:
$HPEESOF_DIR/tools/python/python -m venv --system-site-packages ./.venv_ads
source .venv_ads/Scripts/activate
  • PowerShell:
& "$env:HPEESOF_DIR\tools\python\python.exe" -m venv --system-site-packages .\.venv_ads
.\.venv_ads\Scripts\Activate.ps1

激活后,命令行前面会出现 (.venv_ads) 提示,这代表进入了python的虚拟环境。

三、让 venv 识别 ADS 的本地包
我的 ADS Python 包就在 D:\Keysight\ADS2026\tools\python\packages 目录。这些并不是通过 pip 可直接安装的“打包发行物”,最佳做法是把该目录加入虚拟环境的 site-packages 搜索路径。
此外,部分辅助库(如 keysight.ads.dataset)位于 Lib\site-packages 下,因此需要同时添加该路径。

  • bash 创建方式:
# 进入虚拟环境的 site-packages
cd .venv_ads/Lib/site-packages

# 创建 ads_path.pth 并写入两个关键路径
echo 'D:\Keysight\ADS2026\tools\python\packages' > ads_path.pth
echo 'D:\Keysight\ADS2026\tools\python\Lib\site-packages' >> ads_path.pth
  • PowerShell:
# 进入目录
cd .venv_ads\Lib\site-packages

# 写入 ads_path.pth
'D:\Keysight\ADS2026\tools\python\packages' | Out-File -Encoding ascii ads_path.pth
'D:\Keysight\ADS2026\tools\python\Lib\site-packages' | Add-Content -Encoding ascii ads_path.pth

四、验证导入是否正常
激活 venv 后,在同一终端里进入 Python,测试能否导入 ADS 包与其 .pyd:

def test_import_keysight_ads_de_example() -> None:
    try:
        from keysight.ads import de
    except ImportError as e:
        raise ImportError("Failed to import keysight.ads.de. Verify your environment has been configured properly.") from e

    version = de.version()

    assert version >= 630, "Version of keysight.ads.de is not as expected."
    print(f"Import of keysight.ads.de successful in ADS version {de.version()}.")

# Run the test if this file is executed directly
if __name__ == "__main__":
    test_import_keysight_ads_de_example()

若没有报错,说明 Python 版本匹配、.pth 生效、二进制扩展可加载,一切就绪。

五、安装缺失的关键依赖(重要)
在部分 ADS 版本(如 2026)中,keysight.ads 核心库内部依赖 numpy,但基础环境可能未预装。若在运行测试脚本时遇到 ModuleNotFoundError: No module named 'numpy',请手动补全:

  1. 确保虚拟环境已激活:

    • bash: source .venv_ads/Scripts/activate
    • PowerShell: .\.venv_ads\Scripts\Activate.ps1
  2. 安装 numpy:

    pip install numpy
    

    (若网络不佳,可添加 -i https://pypi.tuna.tsinghua.edu.cn/simple 使用国内镜像)

六、VS Code 配置成按教程可一键运行/调试

  1. 选择解释器
    打开 VS Code,按 Ctrl+Shift+P,输入并选择 “Python: Select Interpreter”,指向
    .venv_ads\Scripts\python.exe

  2. 可选:项目级设置固定解释器
    在当前工程根目录下新建 .vscode/settings.json(若已存在就编辑),加入:

{
    "python.defaultInterpreterPath": ".venv_ads\\Scripts\\python.exe",
    "python.terminal.activateEnvironment": true
}
  1. 调试配置
    新建或编辑 .vscode/launch.json,添加一个使用当前文件的条目(参考教程里的 vscode_example):
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python Debugger: Current File",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": false,
            "env": {
                "HPEESOF_DIR": "D:\\Keysight\\ADS2026"
            }
        },
        {
            "name": "Python Attach: Port 8765",
            "type": "debugpy",
            "request": "attach",
            "justMyCode": false,
            "connect": {
                "host": "localhost",
                "port": 8765
            }
        },
    ]
}
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐