Btw, 귀하의 요구 사항은 다소 드문 경우이며 여기에서 보여주는 내용은 일종의 해킹입니다. 파이썬 스크립트/모듈의 이름을보다 합리적인 이름으로 바꾸면 더 좋을 것입니다.
기본적으로 파이썬은 다른 경로 수에서 가져 오기를 설정하며 그 중 하나는 현재 경로입니다.
>>> import os
>>> os.sys.path
['',
'/home/javl/Envs/so/bin',
'/home/javl/Envs/so/lib/python2.7',
'/home/javl/Envs/so/lib/python2.7/plat-x86_64-linux-gnu',
'/home/javl/Envs/so/lib/python2.7/lib-tk',
'/home/javl/Envs/so/lib/python2.7/lib-old',
'/home/javl/Envs/so/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/home/javl/Envs/so/local/lib/python2.7/site-packages',
'/home/javl/Envs/so/lib/python2.7/site-packages',
'/home/javl/Envs/so/local/lib/python2.7/site-packages/IPython/extensions',
'/home/javl/.ipython']
첫 번째 항목은 ""입니다. 이것은 "이 디렉토리"를 의미합니다. 그것을 제거
>>> os.sys.path.remove("")
>>> os.sys.path
['/home/javl/Envs/so/bin',
'/home/javl/Envs/so/lib/python2.7',
'/home/javl/Envs/so/lib/python2.7/plat-x86_64-linux-gnu',
'/home/javl/Envs/so/lib/python2.7/lib-tk',
'/home/javl/Envs/so/lib/python2.7/lib-old',
'/home/javl/Envs/so/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/home/javl/Envs/so/local/lib/python2.7/site-packages',
'/home/javl/Envs/so/lib/python2.7/site-packages',
'/home/javl/Envs/so/local/lib/python2.7/site-packages/IPython/extensions',
'/home/javl/.ipython']
>>> import redis
을 우리가 원래 순서로 다시 일을 넣고 싶은 경우에, 우리는 그것을 할 수 있습니다
>>> os.sys.path.insert(0, "")
당신은 당신의 redis.py
os.sys.path.remove("")
import redis
os.sys.path.insert(0, "")
class RedisExtension(Extension):
def __init__(self, config):
print redis
class Redis(Facade):
pass
어떤 버전에이 수정 사항을 넣어하여야한다 파이썬의 당신은 사용하고 있습니까? – erbridge
@erbridge 2.7.5 – aacanakin