【问题标题】:Can a (Python) Script permanently Edit my system Path variable?(Python)脚本可以永久编辑我的系统路径变量吗?
【发布时间】:2020-05-12 06:44:08
【问题描述】:

我正在尝试制作一个可以通过命令行执行某些操作的脚本。它的用法应该是这样的:

C:\users\me> appname startprocess

但如果我要发布它,我需要它对每个人都非常方便,并且需要将 PATH 变量设置为我的脚本位置。

我希望我的脚本自行处理此任务。我的脚本可以永久编辑我的 PATH 变量吗?如果有,怎么做?

关于这个主题的大多数问题主要是关于如何为 python 脚本设置路径变量,而不是编写可以自己完成的脚本。

【问题讨论】:

  • 你倒退了;要让脚本编辑路径,您首先必须运行脚本,这意味着知道它在哪里。我建议阅读setup.py 以及如何让人们pip install 你的包包含脚本。例如:python-packaging.readthedocs.io/en/latest/….
  • 我相信有特定于操作系统的方法(来自 Python 脚本)。
  • @Jitin :我不清楚你的问题。你想让appname 改变调用者的路径吗?这只有在appname 与调用者在同一进程中运行时才有可能。例如,如果 appname 是 POSIX shell(我假设您使用 shell 标记),用户需要以 . /path/to/appname startprocess 调用它,以确保它在调用者的进程中运行.
  • 它更像 我正在尝试安装该应用程序。我希望它可以从我的外壳访问。所以我需要我的 python 脚本来永久编辑我的系统 PATH 以便我可以随时调用我的脚本

标签: python shell command-line terminal path


【解决方案1】:

要将当前工作目录添加到 PATH,可以使用以下代码:

import os
import sys
pwd = os.getcwd()
sys.path.append(pwd)

如果要运行 shell 脚本,请使用:

import subprocess
subprocess.run('Your Command', shell = True)

如果要查看命令的输出:

stdout = subprocess.check_output('Your Command', shell = True)
print(stdout.decode())

【讨论】:

  • 但这不是临时修复,Path 变量实际上并没有改变吗?我需要对路径变量进行永久性更改。
  • 对@BugHunter 有更多见解吗?
猜你喜欢
  • 1970-01-01
  • 2011-05-04
  • 1970-01-01
  • 2011-12-21
  • 2021-04-30
  • 1970-01-01
  • 2013-03-22
  • 1970-01-01
  • 2017-03-25
相关资源
最近更新 更多