在Python中导入模块的本地副本

时间:2013-06-12 08:31:46

标签: python

假设我的代码存在于生产中的a.b.something中,并且我的cvs存储库中有相同的路径,如何让python选择模块的本地更改?

在Perl中,可以在运行脚本时通过perl -I调用。我搜索的范围很广,没有找到以下替代方案:

  1. 将模块复制到本地文件夹或
  2. 使用os.path等设置路径或其他内容。
  3. 寻找像Perl调用一样微妙的东西或任何其他更简单的方法来改变路径(不触及代码)

    感谢。

1 个答案:

答案 0 :(得分:1)

Python允许你搞砸import的内部。 您可以在此处找到更多详细信息:http://docs.python.org/2/library/imp.html

或者,修改sys.path似乎有效:

$ cat some_module.py
def test():
  return "one module"
$ cat other/some_module.py
def test():
  return "the other module"
$ python -c 'import sys; import some_module; print some_module.test()'
one module
$ python -c 'import sys; sys.path.insert(0, "other/"); import some_module; print some_module.test()'
the other module