编辑:根据Ulf Rompe的评论,重要的是使用“ 1”而不是“ 0”,否则将破坏sys.path。
我已经使用Python已有一段时间了(一年多了),而对于人们为什么建议您使用sys.path.append()
而不是python,我一直感到困惑sys.path.insert()
。让我示范一下。
假设我正在开发一个名为PyWorkbooks的模块(该模块已安装在我的计算机上),但同时我正在开发另一个包含PyWorkbooks的模块(例如PyJob)。当我在PyJob上工作时,我在PyWorkbooks中发现了我要纠正的错误,因此我想导入一个开发版本。
有两种方法可以同时使用这两种方法(例如,我可以将PyWorkbooks项目放置在PyJob内),但是有时我仍然需要遵循这条路。但是,我不能简单地对sys.path.append()
PyWorkbooks所在的文件夹执行a。为什么?因为python会先找到我安装的PyWorkbooks!
这就是为什么您必须执行sys.path.insert(1,path_to_dev_pyworkbooks)的原因
综上所述:
sys.path.append(path_to_dev_pyworkbooks)
import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one
要么:
sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0**
import PyWorkbooks # imports correct file
过去这给我带来了一些麻烦,如果我们(作为一个社区)开始推荐sys.path.insert(1, path)
,我真的很喜欢,就像您手动插入路径一样,我认为可以肯定地说这就是您想要的路径使用!
还是我有什么问题?这个问题有时会困扰我,我想在户外公开询问!
sys.path.insert(1, dev_folder)
但仍然找不到开发模块,仅使用已安装的模块。我该如何解决?