0
下列哪個Python 2.7導入場景是正確的?也就是說,如果我有一個名稱映射stdlib模塊的模塊,應該導入stdlib或本地版本?OSX上的Python絕對導入
在Linux
$ ls
__init__.py time.py
~/tmp $ cat time.py
def a():
print(¨a¨)
~/tmp $ python
Python 2.7.4 (default, Sep 26 2013, 03:20:26)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> dir(time)
['__doc__', '__name__', '__package__', 'accept2dyear', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'gmtime', 'localtime', 'mktime', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname', 'tzset']
和OSX
sdk$ ls
__init__.py time.py time.pyc
$ cat time.py
def a():
print("a")
$ python
Python 2.7.6 (default, Apr 9 2014, 11:48:52)
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> dir(time)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'a']
PS:WINDOWS似乎遵循Linux和從__future__ import absolute_import
使用沒有任何影響
你確定兩個操作系統都有你的模塊包含在python路徑中嗎? – jonrsharpe
你在第一個例子中是不是cd到'〜/ tmp'?那裏有一個'__init __。py'嗎? – juanchopanza
你爲什麼使用同名模塊? –