2013-06-12 33 views
0

假设我的代码位于生产环境中的a.b.some下,并且在我的CVS存储库中具有相同的路径,我该如何让python选择模块的本地更改?在Python中导入模块的本地副本

在Perl中,在运行脚本时可以通过perl -I调用。我已搜查宽,远远没有找到以下备选方案有什么好处:

  1. 复制模块到本地文件夹或
  2. 使用os.path中设置路径什么的,等

寻找像Perl的调用或改变路径的任何其他更简单的方法微妙的东西(不接触代码)

感谢。

+3

你就不能安装到您的$ PYTHONPATH的一个新的子目录?或者,也许你可以使用[VirtualEnv](http://iamzed.com/2009/05/07/a-primer-on-virtualenv/)? – AlexE

+0

是否想用新版本的模块替换python进程中的旧模块?那么你可以尝试'重新加载' – User

+0

你能否详细说明“本地副本”是什么意思?如果从项目目录运行,它应该默认工作,没有任何标志或对代码进行更改。 – jfs

回答

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