我正在尝试修改我的一个Python文件中的sys.path,以便在模块搜索路径中有一些特定的库dirs(它可能不是最好的方式,但是......).如果我在sys.path的前面插入几个路径,我的脚本没有考虑将来导入的路径.如果我创建一个包含我需要的库的全新列表并将该列表分配给sys.path,则会考虑这些导入.这是正确的行为吗?我正在使用python 2.5.4.这可能是我的环境可能导致这种行为吗?
一些代码片段:如果我这样做
pathtoInsert1 = " .... " pathtoInsert2 = " .... " sys.path.insert(0, pathToInsert1) sys.path.insert(0, pathToInsert2)
pathList = [pathToInsert1, pathToInsert2] sys.path = pathList
pathtoInsert1 = " .... "
pathtoInsert2 = " .... "
sys.path.insert(0, pathToInsert1)
sys.path.insert(0, pathToInsert2)
有用.
谢谢
Eli*_*ght 18
您真的需要为我们发布一些代码才能帮助您.但是,我可以做出有根据的猜测.你说如果你创建一个全新的列表并将其分配给sys.path那么它就可以了.我认为你的意思是你正在做这样的事情
sys.path = ["dir1", "dir2", ...]
Run Code Online (Sandbox Code Playgroud)
但是,如果您在开头插入路径,那么它不起作用.我的猜测是你正在使用insert方法,就像这样
sys.path.insert(0, ["dir1", "dir2"])
Run Code Online (Sandbox Code Playgroud)
如果是,那么这是不正确的.这将创建一个看起来像的列表
[["dir1", "dir2"], "dir3", ...]
Run Code Online (Sandbox Code Playgroud)
你应该说
sys.path[:0] = ["dir1", "dir2"]
Run Code Online (Sandbox Code Playgroud)
哪个会给你
["dir1", "dir2", "dir3", ...]
Run Code Online (Sandbox Code Playgroud)
但是,在您发布代码之前,这一切都是猜测.
小智 2
您如何“插入”附加路径?
修改路径的方式与修改 Python 中任何其他列表的方式相同 - 尽管听起来您只是通过重新分配它来破坏它。
更新 sys.path 的示例:http://www.johnny-lin.com/cdat_tips/tips_pylang/path.html