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

环境变量配置与问题解决

目录

方法

配置了还是运行不了想要的东西 

解决方案

 为什么

 解决方案


方法

方法一:此电脑右击-属性-相关链接-高级系统设置-环境变量(N)-系统变量里面找到Path-三个确定】

 方法二:win+r cmd 黑框输入sysdm.cpl,后面同上

配置了还是运行不了想要的东西 

解决方案

手动添加:

代码前加

import os
import subprocess

# 设置 Graphviz 的路径
graphviz_path = 'C:\\Program Files (x86)\\Graphviz\\bin'
os.environ['PATH'] += os.pathsep + graphviz_path

# 使用 subprocess 运行 dot 命令
result = subprocess.run(['dot', '-Tpng', 'input.dot', '-o', 'output.png'], capture_output=True)

import os
import subprocess

# 设置 Graphviz 的路径
graphviz_path = 'C:\\Program Files (x86)\\Graphviz\\bin'
os.environ['PATH'] += os.pathsep + graphviz_path

也行。 即给os.environ[PATH]添加你要填接的路径,该路径内部有你想要的exe文件

浅浅的解释

import os

这行代码导入了 Python 的标准库 os,它提供了许多与操作系统交互的函数。

 

import subprocess

这行代码导入了 Python 的 subprocess 模块,它允许你启动新的应用程序,连接到它们的输入/输出/错误管道,并获取它们的返回码。

 

# 设置 Graphviz 的路径
graphviz_path = 'C:\\Program Files (x86)\\Graphviz\\bin'

这行代码定义了一个变量 graphviz_path,其值为 Graphviz 安装目录下的 bin 文件夹的路径。这个路径是 Graphviz 的可执行文件(如 dot)所在的位置。

 

os.environ['PATH'] += os.pathsep + graphviz_path

这行代码通过 os.environ 修改了环境变量 PATH

os.pathsep 是一个字符串,表示当前平台(在 Windows 上是分号 ;)用于分隔路径的字符

这行代码将 Graphviz 的 bin 目录添加到系统的 PATH 环境变量中,这样 Python 的 subprocess 模块就能找到 dot 命令了。

 

# 使用 subprocess 运行 dot 命令
result = subprocess.run(['dot', '-Tpng', 'input.dot', '-o', 'output.png'], capture_output=True)

这行代码使用 subprocess.run 函数来运行 dot 命令。以下是参数的详细解释:

  • ['dot', '-Tpng', 'input.dot', '-o', 'output.png'] 是一个列表,其中包含了要运行的命令及其参数。dot 是 Graphviz 的命令行工具,-Tpng 表示输出格式为 PNG,input.dot 是输入文件名,-o output.png 表示输出文件名为 output.png
  • capture_output=True 是一个可选参数,它告诉 subprocess.run 捕获命令的标准输出和标准错误输出,而不是将它们打印到控制台。

执行这行代码后,dot 命令会读取 input.dot 文件,生成一个 PNG 图片,并将其保存为 output.pngresult 变量将包含一个 CompletedProcess 对象,你可以通过这个对象来检查命令的返回码和输出。

 

这两行代码是在设置和修改环境变量 PATH,以便 Python 脚本能够找到并执行 Graphviz 的命令行工具(如 dot)。以下是详细解释:

 

graphviz_path = 'C:\\Program Files (x86)\\Graphviz\\bin'

这行代码定义了一个变量 graphviz_path,它存储了 Graphviz 的 bin 目录的路径。bin 目录通常包含 Graphviz 的可执行文件,例如 dotneatocirco 等。

 

os.environ['PATH'] += os.pathsep + graphviz_path

这行代码执行以下操作:

  • os.environ 是一个包含当前环境变量的字典。(“Path”)是我们需要的索引
  • 'PATH' 是环境变量之一,它包含了一系列由操作系统用来查找可执行文件的目录路径。
  • += 是一个操作符,用于将 graphviz_path 添加到现有的 PATH 环境变量中。
  • os.pathsep 是一个字符串,表示当前操作系统用来分隔路径的字符。在 Windows 上,它是分号 ;,而在 Unix/Linux 上,它是冒号 :
  • 将 graphviz_path 添加到 PATH 环境变量中意味着当你尝试运行一个命令(如 dot)时,操作系统会在这些目录中查找该命令的可执行文件。

通过这种方式,即使 Graphviz 的 bin 目录不在系统的默认 PATH 中,Python 脚本也能找到并执行 Graphviz 的命令行工具。这在运行需要 Graphviz 的脚本时非常有用,尤其是当这些脚本在命令行或自动化环境中运行时

 为什么

当你在 Python 脚本中使用 os.environ['PATH'] 来访问环境变量时,它反映的是在脚本开始执行时环境变量的状态。如果你在脚本运行之后改变了环境变量(例如,通过系统的环境变量设置界面),这些更改不会自动反映到已经运行的 Python 脚本中。

以下是几个可能的原因,解释为什么 os.environ['PATH'] 不显示你添加的路径:

  1. 脚本运行时的环境变量:如果你在脚本运行之后添加了路径到系统的环境变量,那么这个更改不会影响到已经运行的脚本。脚本开始执行时的环境变量是固定的。

  2. 环境变量更改未生效:在某些情况下,更改环境变量后可能需要重启命令提示符窗口或重启计算机才能使更改生效。

  3. 不同的环境:如果你在不同的环境中修改了环境变量(例如,在命令提示符中或通过系统设置),那么这些更改可能不会影响到其他环境(例如,Python 脚本或 IDE)。

  4. 权限问题:在某些情况下,可能需要管理员权限来修改环境变量,特别是对于系统范围内的更改。

为了确保 Python 脚本能看到最新的环境变量,你可以采取以下措施:

  • 重启命令提示符或 IDE:在修改环境变量后,关闭并重新打开命令提示符窗口或 IDE,这样它们就会使用新的环境变量设置。

  • 在脚本中显式设置:正如你之前在脚本中所做的那样,显式地将路径添加到 os.environ['PATH'] 中,确保脚本能够访问到 Graphviz 的可执行文件。

  • 检查环境变量更改是否生效:在命令提示符中运行 echo %PATH%(在 Windows 上)或 echo $PATH(在 Unix/Linux 上)来检查环境变量是否已经更新。

记住,环境变量的更改不会立即影响到所有正在运行的程序,只有新启动的程序才会使用新的环境变量设置。

 解决方案

重启jupyter,真的可以了 


http://www.kler.cn/a/517933.html

相关文章:

  • 科技快讯 | 理想官宣:正式收费!WeChat 港币钱包拓宽商户网络;百川智能发布深度思考模型Baichuan-M1-preview
  • Linux系统之gzip命令的基本使用
  • #HarmonyOS篇:build-profile.json5里面配置productsoh-package.json5里面dependencies依赖引入
  • 基于springboot+vue的古城景区管理系统的设计与实现
  • Pyecharts图表交互功能提升
  • nacos(基于docker最详细安装)
  • Gin 学习笔记
  • JAVA实战开源项目:在线旅游网站(Vue+SpringBoot) 附源码
  • 【Linux跬步积累】——thread封装
  • 使用Pytest Fixtures来提升TestCase的可读性、高效性
  • Java 实现Excel转HTML、或HTML转Excel
  • 「 机器人 」系统辨识实验浅谈
  • 如何有效进行软件集成测试?常见的集成测试工具分享
  • 工程数学速记手册(下)
  • 汽车免拆诊断案例 | 2007 款日产天籁车起步加速时偶尔抖动
  • 前端react后端java实现提交antd form表单成功即导出压缩包
  • LMI Gocator GO_SDK VS2019引用配置
  • 【2025美赛D题】为更美好的城市绘制路线图建模|建模过程+完整代码论文全解全析
  • ThinkPhp伪静态设置后,访问静态资源也提示找不到Controller
  • 【新人系列】Python 入门(二十九):常用标准库 - 下
  • 【Git】如何在 Git 提交后补充 Change-Id
  • PDF密码有哪些类型?
  • 使用Python和Flask搭建导航网站需要注意的问题有哪些?
  • Python数据分析-Python的数据结构、函数和文件(三)
  • 六、深入了解DI
  • 【Uniapp-Vue3】触底加载更多