如何在Shell中获取Python路径?

Python 作为一种语言具有很大的灵活性和可扩展性。将文件分组到包中,然后将包分组到库中的能力使 Python 非常强大。但控制 Python 文件的可访问性也是一项重要任务。pythonpathPython 有专门用于此目的的环境变量。

在本文中,我们将深入研究Python的环境变量并彻底了解Pythonpath变量。稍后,我们会将其与其他语言中的路径变量进行比较。那么让我们开始吧。

什么是 PYTHONPATH?

pythonpath变量是一个环境变量,它存储解释器应该在其中搜索请求导入的模块或包的所有目录的路径。

相关:了解如何导入其他 Python 文件

Pythonpath基本上是基于该sys.path库来运行的syssys.path是解释器应该在其中搜索已请求导入的模块或包的路径列表。pythonpath 将其中指定的所有目录附加到库sys.path提供的列表中sys

目录存在于pythonpath

当您在系统中下载 Python 时,默认目录位置会添加到 pythonpath 中,其中存储了属于标准库的所有模块以及系统中全局安装的所有库。

添加到 pythonpath 的第二个路径是您创建的文件所在目录的位置。这允许解释器访问与您正在编程的 Python 文件处于相同相对位置的模块和包。

除此之外,您还可以附加其他目录,您希望解释器在其中搜索要sys.path列出的模块和包。您可以通过以下代码块来完成此操作。

import sys
sys.path.append("path/to/directory")

与其他语言中PATH环境变量的比较

其他语言中的路径变量与该pythonpath变量具有相同的用途。它用于指定在哪里搜索导入的模块和包。在C/C++中,getenv()方法用于访问路径变量。对于许多语言来说,路径变量可以是相同的。对于 Python 来说也是如此。pythonpath提供了更多的多功能性。

设置 PYTHONPATH 的重要性

导入其他模块和包,这样您就不必重复编写相同的代码,满足 OOP 语言的 DRY(不要重复自己)属性。设置 pythonpath 变量有助于组织文件并轻松访问需要的文件。它有助于将程序与单独的虚拟环境中相同依赖项的不同版本隔离。

获取PYTHONPATHin Shell 的方法

使用echo命令

echo命令是 shell 脚本中的 print 语句。它存在于终端和命令提示符中。大多数操作系统都有该echo命令。您可以使用它在终端本身中输出文本或变量值。我们要让它输出pythonpath. 让我们看看如何使用该echo命令来获取变量的值pythonpath

echo $PYTHONPATH
回显Pythonpath

注意:pythonpath如果您现在尝试打印pythonpath大多数系统中默认情况下都没有设置。pythonpath我们将在本文中进一步了解如何设置

使用python命令

让我们尝试在 shell 中pythonpath使用该命令。python

python -c "import os;pythonpath = os.getenv('PYTHONPATH','');print(os.getenv('PYTHONPATH'))"
Pythonnpath 使用 Python 命令

使用该-c标志,我们直接在 shell 中执行 Python 脚本。我们使用 os 模块检查 pythonpath。

相关:了解有关如何在 shell 中执行 Python 代码的更多信息?

os在Python中使用模块

os模块可用于与不同操作系统相关的操作。os模块可用于访问pythonpath变量。

1
2
3
4
5
import os
pythonpath = os.getenv('PYTHONPATH','')
pythonpath+='/Users/kundansingh/opt/anaconda3/lib/python39.zip'
os.environ['PYTHONPATH']=pythonpath
print(os.getenv('PYTHONPATH'))
pythonpath 使用 Os 模块

首先,您将访问pythonpathusing 该os.getenv函数。然后您将添加要添加的路径。之后,您将在字典pythonpath中设置os.environ

注意:您无法pythonpath永久修改使用 os 模块。获取 pythonpath 环境变量并修改它的唯一方法是通过 shell/bash 命令,例如 echo 和 export。

设置 PYTHONPATH

在大多数系统中,pythonpath默认情况下未设置。您必须使用 shell 命令手动设置它。主要有两种方法可以设置变量pythonpath让我们来探讨一下它们。

使用导出命令

export命令可以访问环境变量并设置或更新它们的值。使用起来非常简单。它可用于设置pythonpath变量。

export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9:$PYTHONPATH"
设置Pythonpath的导出命令

注意:使用该仅针对特定 shell 会话export设置pythonpath它是持久的,但仍然是暂时的。因此,我们将使用 bash 来实际设置 pythonpath 变量,我们可以随时使用它。

使用 .bashrc 文件

将当前目录更改为主目录,然后通过执行 nano .bachrc 命令打开 .bashrc 文件。之后,在其中写入以下代码行。

export PYTHONPATH="/Users/kundansingh/opt/anaconda3/lib/python39.zip"

现在将源设置为.bashrc,您的pythonpath设置就完成了。

常见问题及解决方案

  • 使用时出现的最常见问题pythonpath是语法错误。":"大多数程序员犯错误的一个关键地方是macOS 或 Linux 中的路径与";"Windows 中的路径分开。
  • 可能导致问题的另一件事是路径类型。当相对路径是程序特定的并且可能会导致其他程序出现问题时,最好使用绝对路径pythonpath
  • 确保每次处理新项目时都使用新的 shell 会话,以避免使用错误的依赖项。
  • 确保您pythonpath在正确的环境中进行更改。

结论

这就是您需要了解的有关该pythonpath变量的全部信息。这并不是什么大事,而且很容易理解。但它为程序员提供了很大的灵活性。确保你不断地尝试它,看看使用它能取得什么成果。不断探索新事物,因为这就是程序员成为优秀程序员的原因。

参考

官方 Python 文档

堆栈溢出对同一问题的回答。