Python 作为一种语言具有很大的灵活性和可扩展性。将文件分组到包中,然后将包分组到库中的能力使 Python 非常强大。但控制 Python 文件的可访问性也是一项重要任务。pythonpath
Python 有专门用于此目的的环境变量。
在本文中,我们将深入研究Python的环境变量并彻底了解Pythonpath变量。稍后,我们会将其与其他语言中的路径变量进行比较。那么让我们开始吧。
什么是 PYTHONPATH?
该pythonpath
变量是一个环境变量,它存储解释器应该在其中搜索请求导入的模块或包的所有目录的路径。
相关:了解如何导入其他 Python 文件。
Pythonpath基本上是基于该sys.path
库来运行的sys
。sys.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 变量有助于组织文件并轻松访问需要的文件。它有助于将程序与单独的虚拟环境中相同依赖项的不同版本隔离。
获取PYTHONPATH
in Shell 的方法
使用echo
命令
该echo
命令是 shell 脚本中的 print 语句。它存在于终端和命令提示符中。大多数操作系统都有该echo
命令。您可以使用它在终端本身中输出文本或变量值。我们要让它输出pythonpath
. 让我们看看如何使用该echo
命令来获取变量的值pythonpath
。
echo $PYTHONPATH |
注意:pythonpath
如果您现在尝试打印pythonpath
大多数系统中默认情况下都没有设置。pythonpath
我们将在本文中进一步了解如何设置
使用python
命令
让我们尝试在 shell 中pythonpath
使用该命令。python
python -c "import os;pythonpath = os.getenv('PYTHONPATH','');print(os.getenv('PYTHONPATH'))" |
使用该-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
using 该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" |
注意:使用该仅针对特定 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
变量的全部信息。这并不是什么大事,而且很容易理解。但它为程序员提供了很大的灵活性。确保你不断地尝试它,看看使用它能取得什么成果。不断探索新事物,因为这就是程序员成为优秀程序员的原因。
参考
堆栈溢出对同一问题的回答。