PATH的重要性解释了

时间:2013-11-29 23:04:42

标签: c# java python path

这可能是一个基本问题,但我仍然对编程有点新意,我想知道一段时间。我已经用Python,C#和Java完成了多个项目,当我尝试使用新的库(尤其是Python)时,人们总是说要确保它在正确的PATH等等。我刚刚关注了如何在新计算机上安装Java的在线教程,它重新点燃了我的路径确实是什么的问题。 Path只是编程语言在文件系统中查找库吗?我对它的重要性感到困惑。再一次,我很抱歉这个广泛的问题,这是我从未在自己的编程中得到的东西。

编辑:我只想非常感谢大家回答我的问题。我知道这是一个非常愚蠢的,因为我终于弄清楚它是什么,但它确实帮助了我。我正在慢慢完成我在网上找到的尽可能多的C#,Java和Python教程,很高兴知道我有一个地方可以提问:)

5 个答案:

答案 0 :(得分:2)

PATHshell (or other command interpreter)用于搜索命令的环境变量。通常(总是?)命令是使用贪婪算法找到的,因此首先返回PATH中首先出现的条目。例如,/usr/local/bin中的命令会覆盖/usr/bin中的PATH命令,例如

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

虽然目的是一致的,但WINDOWS上的语法略有不同 - 您可以使用

C:\> ECHO %PATH%

“回应”您的PATH

首先我的shell将搜索/usr/local/sbin然后/usr/local/bin然后/usr/sbin然后再搜索/usr/bin,然后搜索/sbin/bin没有找到它会报告它找不到这样的命令......

# Like so
$ thisprogramdoesntexist
thisprogramdoesntexist: command not found

现在,至少在Linux上,系统将使用LD_LIBRARY_PATH来搜索动态库(贪婪),在Windows上我认为它只使用PATH。最后,Java使用类似的CLASSPATH(但用于搜索类和JAR)。

在Linux上,可以像这样添加一个条目到PATH,

$ export PATH="$PATH:/addNewFolder"

在Windows上,您可以使用

set PATH=%PATH%;c:\addNewFolder

有时,您可能会操纵PATH以启用特定功能,有关示例,请参阅Ubuntu上的update-java-alternatives

答案 1 :(得分:2)

关于PATH信息的最佳资源(目前为止),您可以在此问题中看到:

https://superuser.com/questions/284342/what-are-path-and-other-environment-variables-and-how-can-i-set-or-use-them

Stack Overflow不是搜索此内容的最佳位置,请务必查看令人惊叹的内容 https://superuser.com/就此类问题而言。

答案 2 :(得分:1)

PATH是计算机上的文件目录。如果需要安装编程语言,可能需要将其放在系统PATH变量中。这意味着系统会查看这些文件以获取不同的信息,IE中您使用的代码的库是 希望有所帮助!

答案 3 :(得分:0)

正如其他人所说,PATH是搜索中包含的文件夹列表 - 除当前文件夹外 - 您可以随时访问。这是Environment Variables之一。

例如,我们在C:\Python27中有python文件夹。我确定你知道要运行python文件,我们通常使用python script.py

命令行会在当前文件夹中搜索python.exe,如果找不到,请在路径变量的文件夹中搜索。

要阅读路径,您可以直接使用:

$ PATH

如果你在Windows上,就像我一样,处理这个问题的一个简单方法就是使用系统属性。只需在开始菜单中输入,打开它,然后转到“高级”标签。点击环境变量,那里!您将看到PATH变量,您可以根据需要对其进行修改。

我自己使用多个版本的Python,为了解决这个问题,我将所有文件夹添加到PATH,并将我的python.exe更改为pythonversion_number.exe。问题解决了!现在,我可以在命令行中运行它:

$ python26 script.py
$ python33 script2.py

如果您有兴趣,可以进一步阅读here's a good question asked

希望这有帮助!

答案 4 :(得分:0)

PATH是一个符号名称,通常与以分号分隔的字符串值(目录名称)相关联。此符号名称由操作系统处理,最终用户可以通过命令SET PATH = ........

进行修改。

由于这种标准化,编译器或其他编程工具等工具通常会查看此符号名称并使用字符串值列表来搜索工具使用的当前文件夹中不可直接使用的文件。

因此,如果安装过程以这种方式设置PATH符号

SET PATH=%path%;C:\PROGRAM FILES\MYTOOLFOLDER;

表示将PATH符号设置为上一个值(%PATH%)并向其添加另一个字符串值(C:\PROGRAM FILES\MYTOOLFOLDER)。

然后,当需要搜索特定文件或库时,该工具可以读取PATH符号值,以分号分割它们并迭代地查看逐个列出的目录,查找所需的库。

例如,在C#编程中,工具代码可能包含类似

的内容
string pathSymbol = Environment.GetEnvironmentVariable("PATH");
string[] pathFolders = pathSymbol.Split(';');
foreach(string folder in pathFolders)
{
    if(File.Exists(Path.Combine(folder, "mylibrary.dll"))
    {
        ..... do whatever you need to do with the file
    }
}

此示例假定Windows环境。