Python sys.path修改不起作用

2024-09-28 01:23:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图修改我的一个Python文件中的sys.path,以便 模块搜索路径中的特定库目录(这可能不是最好的方法 但是。如果我在sys.path前面插入多个路径,则脚本在以后导入时不会考虑这些路径。如果我创建一个包含所需库dir的全新列表,并将该列表分配给sys.path,则会考虑这些导入。这是正确的行为吗?我使用的是Python2.5.4。是不是我周围的环境导致了这种行为?

一些代码段: 如果我做了

pathtoInsert1 = " .... "
pathtoInsert2 = " .... "
sys.path.insert(0, pathToInsert1)
sys.path.insert(0, pathToInsert2)

它不起作用。它不考虑路径。

如果我做了

pathList = [pathToInsert1, pathToInsert2] 
sys.path = pathList

它起作用了。

谢谢


Tags: 模块文件path方法路径目录脚本列表
3条回答

here更新sys.path的示例

import sys
sys.path.append("/home/me/mypy")

这对我有效。

你真的需要发布一些代码,我们才能帮助你。不过,我可以做一个有根据的猜测。你说如果你创建一个全新的列表并将其分配给sys.path,那么它就可以工作了。我想你是说你在做这样的事

sys.path = ["dir1", "dir2", ...]

但是如果你在开头插入路径,它就不起作用了。我猜你用的是insert方法,就像这样

sys.path.insert(0, ["dir1", "dir2"])

如果是,那么这是不正确的。这将创建一个看起来像

[["dir1", "dir2"], "dir3", ...]

你应该说

sys.path[:0] = ["dir1", "dir2"]

它会给你

["dir1", "dir2", "dir3", ...]

但在你发布代码之前,这些都是猜测。

如何“插入”其他路径?

修改路径的方式与修改Python中任何其他列表的方式相同——尽管听起来你只是通过重新分配它来删除它。

更新sys.path的示例:http://www.johnny-lin.com/cdat_tips/tips_pylang/path.html

相关问题 更多 >

    热门问题