如何在python中更改built_in模块

时间:2015-12-09 08:11:37

标签: python

我想在os.py中更改os.path,但它失败了。不同平台的路径不同。

os.py

import ntpath as path
sys.modules['os.path'] = path
from os.path import (curdir, pardir, sep, pathsep, defpath, extsep, altsep, devnull)

事实证明

    from os.path import (curdir, pardir, sep, pathsep, defpath, extsep, altsep,
devnull)
ImportError: No module named path

2 个答案:

答案 0 :(得分:2)

你的方法应该有效。将当前目录中的子目录os重命名为my_os。 Python首先找到您的os目录并尝试从那里导入。

添加以下行:

__future__ import absolute_import

os.py的开头使用absolute imports来避免此问题。

答案 1 :(得分:1)

您是否尝试使用“__import__”功能?

import mtpath as path
os_path = __import__(path, globals(), locals(), ['curdir', 'pardir', 'sep', 'pathsep', 'defpath', 'extsep', 'altsep', 'devnull']

然后,你可以使用'curdir'作为:

os_path.curdir

好吧,您也可以将其标记为'curdir'名称,如文档中所示:

curdir = os_path.curdir
pardir = os_path.curdir
…