python如何使用系统安装的Graphviz(非pip/conda install,方便以后单独使用)

本文介绍了两种安装Graphviz的方法:通过pip或conda直接安装,以及先手动安装再配置的方式。详细步骤包括验证安装是否成功及必要的配置命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:最近在用Graphviz可视化神经网络结构,分别使用了conda直接安装和手动安装Graphviz,提及一些坑,供大家参考


一、关于Graphviz安装的两种方式

1.采用网上的pip或者conda一步安装到位
2.采用先手动在系统上安装python外部独立的Graphviz,再进行相关配置

二、Graphviz的安装

1.采用pip或者conda直接安装

安装命令:

pip install pydot
pip install pydotpus
pip install graphviz
"""或者采用conda"""
conda install pydot
conda install pydotpuls
conda install graphviz

接下来的配置:

打开cmd 或者安装的某个conda环境
1.dot -v#查看是否安装成功
'''必须使用管理员方式打开cmd'或者Anaconda Prompt'''
2.dot -c#进行系统配置

'''出现一下信息表示已经完全安装成功,但是此Graphviz仅仅是python的库,非python可能无法使用
dot - graphviz version 
libdir = "G:\ProgramData\Anaconda3\Scripts"
Activated plugin library: gvplugin_dot_layout.dll
Using layout: dot:dot_layout
Activated plugin library: gvplugin_core.dll
Using render: dot:core
Using device: dot:dot:core
The plugin configuration file:
        G:\ProgramData\Anaconda3\Scripts\config6
                was successfully loaded.
    render      :  cairo dot dot_json fig gdiplus json json0 map mp pic ps svg tk vml xdot xdot_json
    layout      :  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout  :  textlayout
    device      :  bmp canon cmap cmapx cmapx_np dot dot_json emf emfplus eps fig gif gv imap imap_np ismap jpe jpeg jpg json json0 metafile mp pdf pic plain plain-ext png ps ps2 svg tif tiff tk vml xdot xdot1.2 xdot1.4 xdot_json
    loadimage   :  (lib) bmp eps gif jpe jpeg jpg png ps svg
'''

但是此方法,有时候也会出现“dot -v”不是内部命令,导致后续操作无法展开,为了万无一失,决定采用外部独立安装Graphviz在笔记本再试一次(之前是在台式机上安装的)

2.外部独立安装Graphviz

windows版本下载地址:http://www.graphviz.org/download/

步骤一:

本来有提示自动添加路径,但是会执行失败,所以还是需要手动配置添加路径
在这里插入图片描述

步骤二

直接使用管理方式打开cmd,并执行以下命令

dot -v
dot -c

步骤三

pip 安装pydotplus(无需pydot)、pydocstyle 、pydot-ng

pip install pydotplus   
"""以下为附加库,完善坑"""
pip install pydocstyle                         
pip install pydot-ng 
"""安装成功,外部也可以独立打开使用
  (base) C:\Users\czk>dot -v
dot - graphviz version 2.44.1 (20200629.0846)
libdir = "C:\Program Files\Graphviz 2.44.1\bin"
Activated plugin library: gvplugin_dot_layout.dll
Using layout: dot:dot_layout
Activated plugin library: gvplugin_core.dll
Using render: dot:core
Using device: dot:dot:core
The plugin configuration file:
        C:\Program Files\Graphviz 2.44.1\bin\config6
                was successfully loaded.
    render      :  cairo dot dot_json fig gdiplus json json0 map mp pic ps svg tk vml xdot xdot_json
    layout      :  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout  :  textlayout
    device      :  bmp canon cmap cmapx cmapx_np dot dot_json emf emfplus eps fig gif gv imap imap_np ismap jpe jpeg jpg json json0 metafile mp pdf pic plain plain-ext png ps ps2 svg tif tiff tk vml xdot xdot1.2 xdot1.4 xdot_json
    loadimage   :  (lib) bmp eps gif jpe jpeg jpg png ps svg
 """                                         
### N沟道与P沟道MOSFET的工作原理 N沟道和P沟道MOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor,金属氧化物半导体场效应晶体管)是两种常见的MOSFET类型。它们的主要区别在于载流子的种类以及工作模式的不同。 #### 1. 基本结构与工作原理 MOSFET按照沟道导电类型的分类可分为N沟道型和P沟道型。其中,N沟道MOSFET利用电子作为主要载流子,而P沟道MOSFET则依赖于空穴作为主要载流子[^2]。 对于N沟道MOSFET而言,当栅源电压 \( V_{GS} \) 超过阈值电压 \( V_{th} \),会在漏极和源极之间形成一条导电通道,从而使电流能够通过。而对于P沟道MOSFET,则是在负向栅源电压下开启通道[^4]。 #### 2. 开关特性 在实际应用中,增强型MOSFET常被用作开关元件。以N沟道增强型MOSFET为例,当栅源电压低于阈值电压时,MOSFET处于截止状态;当栅源电压高于阈值电压时,MOSFET进入饱和区并导通。这种行为使得MOSFET非常适合用于数字逻辑电路中的开关功能。 同样地,P沟道MOSFET也具备类似的开关特性,但在具体操作上有所不同——它需要较低的栅源电压来激活通道。这决定了两者在电路设计上的不同应用场景。 #### 3. 输入阻抗特点 无论是N沟道还是P沟道MOSFET,由于其独特的绝缘栅结构,都表现出极高输入阻抗的特点。这一特征意味着即使是非常微弱的驱动信号也能有效控制MOSFET的状态转换,同时也降低了静态功耗[^5]。 ### 应用场景分析 基于上述理论基础,N/P沟道MOSFET广泛应用于各类电子产品之中: - **电源管理**: 利用低导通电阻的优势, 可显著提高效率. - **信号切换**: 高频通信设备里常用做快速响应的模拟/数字信号切换器. - **功率放大**: 特别适合大电流输出场合下的音频功率放大部分. ```python # 示例代码展示如何使用Python库matplotlib绘制简单的MOSFET伏安特性曲线 import matplotlib.pyplot as plt import numpy as np vgs_values = np.linspace(-5, 5, 500) id_values_nmos = [(vg - 1)**2 if vg >= 1 else 0 for vg in vgs_values] # NMOS example transfer function id_values_pmos = [-(vg + 1)**2 if vg <= -1 else 0 for vg in vgs_values] # PMOS example transfer function plt.figure(figsize=(8,6)) plt.plot(vgs_values, id_values_nmos, label="NMOS", color='blue') plt.plot(vgs_values, id_values_pmos, label="PMOS", color='red', linestyle="--") plt.title('Transfer Characteristics of NMOS and PMOS FETs') plt.xlabel('$V_{GS}$ (Volts)') plt.ylabel('$I_D$ (Amps)') plt.legend() plt.grid(True) plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风筝不是风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值