当前位置: 首页 > news >正文

gdsfactory安装以及和klayout联调

目录

1.首先安装klayout的软件

2.根据这个对应版本创建对应虚拟环境和安装对应版本库

3.在klayout安装对应插件

方法一:通过 KLayout 包管理器安装 (尝试失败的方法)

方法二:手动安装

方法三:一行命令

运行效果


有miniconda等配置好的python大环境,可以创建虚拟环境以分割不同项目环境

1.首先安装klayout的软件

最好安装最新版,对应网站:KLayout Layout Viewer And Editor

下载完成后,我们使用 dpkg 命令来安装这个 .deb 包。

# 请将文件名替换为您实际下载的文件

sudo dpkg -i klayout_0.29.0-1_amd64.deb

Ubuntu 20.04中系统太老,您手动安装的新版KLayout在启动时,需要一个名为 libgit2.so.28 的系统文件,但在您的系统中找不到它。

在Ubuntu 20.04中,这个文件包含在名为 libgit2-28 的包里。

sudo apt install -y libgit2-28

在终端输入klayout启动

2.根据这个对应版本创建对应虚拟环境和安装对应版本库

一定要安装对应版本,要不可能出现klayout调不出来等诸多问题

Python版本安装3.11往上

# 激活您的环境

conda activate gdsfactory

# 确保您在 (gdsfactory) 环境中

pip install gdsfactory

查看版本命令

pip list | grep gdsfactoryklayout -v

3.在klayout安装对应插件

(使用方法三,最佳推荐,其他两个方法都失败)

方法一:通过 KLayout 包管理器安装 (尝试失败的方法)

这个方法理论上最简单,直接在 KLayout 图形界面中完成。

正确流程:

打开 KLayout。

点击菜单栏的 Tools -> Manage Packages。

在 Install New Packages 标签页的搜索框中输入 gdsfactory。

在搜索结果中找到 gdsfactory,并勾选它。

点击 Apply 按钮,KLayout 会自动下载并安装。

安装失败的常见原因分析:

网络问题: KLayout 可能无法连接到 Salt/PyPI 服务器。这可能是由于公司防火墙、代理设置或网络不稳定导致的。

权限不足: KLayout 可能没有足够的权限在目标文件夹中写入文件。可以尝试使用管理员权限启动 KLayout。

Python 环境依赖问题: KLayout 自带的 Python 环境可能缺少 pip 或者其他必要的依赖库,导致无法完成安装。

版本不兼容: 包管理器中的 GDSFactory 版本可能与您的 KLayout 版本或其内置的 Python 版本不兼容。

方法二:手动安装

如果你之前使用了方法一,在您的终端中,依次运行以下三条 rm (remove) 命令,来彻底删除这些残留文件和之前不完整的链接。

rm -rf /root/.klayout/salt/gdsfactoryrm -rf /root/.klayout/salt/metainfo-portsrm -rf /root/.klayout/salt/klive

第一步:准备工作

打开终端

如果您不确定KLayout的配置目录到底在哪里,可以用 find 命令来搜索它。

find ~ -type d -name ".klayout"

进入一个临时下载目录,比如桌面,以保持整洁:

cd ~/Desktop

第二步:手动下载三个必需的仓库

KLayout的安装程序主要需要下载三个来自GitHub的仓库。我们将使用 wget 命令将它们作为 .zip 压缩包下载下来。

下载 gdsfactory

wget https://github.com/gdsfactory/gdsfactory/archive/refs/heads/main.zip -O gdsfactory.zip

下载 klive

wget https://github.com/gdsfactory/klive/archive/refs/heads/main.zip -O klive.zip

下载 metainfo-ports

wget https://github.com/gdsfactory/metainfo-ports/archive/refs/heads/main.zip -O metainfo-ports.zip

下载完成后,您的桌面 (~/Desktop) 上应该会有三个 .zip 文件。

第三步:解压并移动到正确位置(关键步骤)

这是最关键的一步,我们需要将解压后的文件夹重命名并移动到KLayout salt 插件目录中。

请依次执行以下命令组:

处理 gdsfactory.zip:

# 解压 gdsfactory.zip, 会生成一个名为 gdsfactory-main 的文件夹

unzip gdsfactory.zip

# 将解压出的文件夹移动到 salt 目录,并重命名为 gdsfactory

mv gdsfactory-main /root/.klayout/salt/gdsfactory

# 删除下载的压缩包

rm gdsfactory.zip

处理 klive.zip:

# 解压 klive.zip, 会生成一个名为 klive-main 的文件夹

unzip klive.zip

# 将解压出的文件夹移动到 salt 目录,并重命名为 klive

mv klive-main /root/.klayout/salt/klive

# 删除下载的压缩包

rm klive.zip

处理 metainfo-ports.zip:

# 解压 metainfo-ports.zip, 会生成一个名为 metainfo-ports-main 的文件夹

unzip metainfo-ports.zip

# 将解压出的文件夹移动到 salt 目录,并重命名为 metainfo-ports

mv metainfo-ports-main /root/.klayout/salt/metainfo-ports

# 删除下载的压缩包

rm metainfo-ports.zip

第四步:最终验证

现在,所有必需的插件文件都已经被我们手动放置在了正确的位置。

完全关闭并重新启动KLayout

启动后,点击顶部菜单栏的 Tools -> Manage Packages

在弹出的窗口中,点击 "Current Packages" (当前包) 标签页。

这一次,您应该能看到 gdsfactory, klive,  metainfo-ports 都已经出现在已安装的列表中了。

至此,您的KLayout插件已经手动安装成功,所有功能应该都可以正常使用了。请再次尝试运行您的Python脚本 demotest.pyKLayout窗口应该就能正常弹出了。

方法三:一行命令

如果你之前使用了方法一和方法二,在您的终端中,依次运行以下三条 rm (remove) 命令,来彻底删除这些残留文件和之前不完整的链接。

rm -rf /root/.klayout/salt/gdsfactoryrm -rf /root/.klayout/salt/metainfo-portsrm -rf /root/.klayout/salt/klive

(这会彻底删除那些导致冲突的、不完整的旧文件夹和链接)

然后,运行命令:

gf install-klayout-genericpdk

务必保持插件安装成功,否则无法在python中调用klive实时显示服务

运行效果

根据编写代码实时变化

http://www.xdnf.cn/news/1414315.html

相关文章:

  • 自学嵌入式第三十一天:Linux系统编程-进程间通信
  • 《程序员修炼之道》第七八九章读书笔记
  • Asible管理变量和事实和实施任务控制
  • 新手首次操作SEO核心要点
  • 深度学习周报(8.25~8.31)
  • 雪花算法生成分布式ID
  • C++ STL之哈希封装实现unordered_map/set
  • 第4章从一条记录说起-InnoDB记录结构
  • Redis六大常见命令详解:从set/get到过期策略的全方位解析
  • 如何用熵正则化控制注意力分数的分布
  • 【CVTE】C++开发 (提前批一面)
  • 【AI智能体】Dify 实现自然语言转SQL操作数据库实战详解
  • 【Spring】ApplicationListener监听器
  • 【芯片测试篇】:LIN总线
  • AI 赋能 Java 开发效率:全流程痛点解决与实践案例(一)
  • Linux/UNIX系统编程手册笔记:用户和组、进程凭证、时间以及系统限制和选项
  • 利用DeepSeek编写验证xlsx格式文件中是否启用sharedStrings.xml对读写效率影响python程序
  • DRF快速构建RESTful API指南
  • redis详解 (最开始写博客是写redis 纪念日在写一篇redis)
  • C++内存序不迷茫:从CPU缓存一致性理解Memory Order
  • Wi-Fi技术——初识
  • 如何绕过 disable-devtool.js 打开控制台
  • C语言中如何使用NULL
  • 配置 Kubernetes Master 节点不可调度的标准方法
  • stm32F4挂载emmc以及重定义printf
  • ThinkPHP8学习篇(五):数据库(一)
  • 洛谷p2392kkksc03考前临时抱佛脚 详解(回溯,深度搜索法)
  • Redis常见数据类型及应用场景
  • java 安装流程配置
  • 金仓数据库KingbaseES:中国自主原创的数据库领军者