关于python相对路径,绝对路径的问题我的当前目录为D:\lianxi\quanju.pystring.py__init__.pylianxi.py我运行quanju.pyquanju.py中的代码为:importlianxiimportstringprintstring.__...
关于python相对路径,绝对路径的问题
我的当前目录为D:\lianxi\
quanju.py
string.py
__init__.py
lianxi.py
我运行quanju.py
quanju.py中的代码为:
import lianxi
import string
print string.__file__
print lianxi.__file__
我在C:\Python26\Lib目录中也放了lanxi.py
为什么运行后的string和lianxi的文件地址不同:
C:\Python26\lib\string.pyc
D:\lianxi\lianxi.pyc
我调看了sys.path
['D:\\lianxi', 'C:\\Python26\\Lib\\idlelib', 'C:\\WINDOWS\\system32\\python26.zip', 'C:\\Python26\\DLLs', 'C:\\Python26\\lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk', 'C:\\Python26', 'C:\\Python26\\lib\\site-packages']
不是会先搜索当前目录吗,那为什么只搜索当前目录的lianxi.py而string.py却是标准库中的呢
我用的是python2.6版本,不知道实行了默认据对路径了没,但是我将quanju.py代码改为如下:
from __future__ import absolute_import
from . import lianxi
from . import string
print string.__file__
print lianxi.__file__
总会出现如下提示
Traceback (most recent call last):
File "D:\lianxi\quanju.py", line 2, in
from . import lianxi
ValueError: Attempted relative import in non-package
能给我讲讲from . import ……
的使用方法吗,在此谢过了
展开