Python sys.path属性
sys
模块与Python解释器相关联。它提供了帮助与Python解释器交互的各种函数,解释器维护和使用了几个变量。
由于它是一个内置模块,因此默认情况下可用。这个模块拥有一个变量path
,它存储了一个文件系统路径列表,用于搜索Python模块。
Python的语法 sys.path
属性
sys.path
参数
因为它是一个变量,而不是一个函数,所以它没有参数。
返回
因为它是一个变量而不是一个函数,所以它不返回任何东西。它是一个常规的Python字符串列表,可以使用有效的索引访问字符串。
实例1:用 sys.path
获取所有路径
import sys
print(sys.path)
输出:
[
'/home/repl/13621cdd-4388-4f56-8ddf-a3fdc618c835',
'/usr/lib/python38.zip',
'/usr/lib/python3.8',
'/usr/lib/python3.8/lib-dynload',
'/usr/lib/python3.8/site-packages'
]
请注意,输出将因系统而异。默认情况下,列表中的第一项是当前工作目录的文件系统路径。
如果上面的代码是从交互式Python shell执行的,则该项将是空字符串,因为脚本没有保存在任何地方。
实例2:用 sys.path
添加搜索模块的路径
import sys
path = "/home/user/python/modules/"
sys.path.append(path)
print(sys.path)
输出:
[
'/home/repl/39dbc83d-a54b-47e8-b38c-93afc904104d',
'/usr/lib/python38.zip',
'/usr/lib/python3.8',
'/usr/lib/python3.8/lib-dynload',
'/usr/lib/python3.8/site-packages',
'/home/user/python/modules/'
]
想象一下,我们自己编写了一些Python API和模块,并将它们存储在某个文件夹中。现在我们需要在一些项目中使用这些模块。
一个简单的解决方案是复制当前目录中的文件并使用它。现在假设我们为10
项目做了这件事。
几周后,我们更新了原始库,并将这些更改应用到每个副本;我们必须更改所有10
位置的文件。这确实是一种冗长而有效的方法。
如果我们将包含所有模块的文件夹视为源代码,并告诉Python解释器在该目录中查找模块,会怎么样?这正是sys.path.append()
让我们做的。
我们可以将路径添加到sys.path
,并要求Python解释器在这些路径上查找模块。
考虑到模块之间没有名称冲突,这是一个极好的方法,因为现在我们只需要在一个地方编写更新,并且每个使用它的项目都可以访问它们。此外,可以使用Git轻松地合并版本控制。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。