5

これは Python 3.3.2 シェルで動作します

Python 3.3.2 シェルの内部

>>> import datetime
>>> print(datetime.datetime.utcnow())
2013-07-09 19:40:32.532341

それは素晴らしいことです!次に、「datetime.py」という名前の単純なテキスト ファイルを作成しました。

Datetime.py の内部

#Date time
import datetime
print(datetime.datetime.utcnow())
#Prints GMT, which is named Universal Coordinated Time
# Which is UTC because in French it's something like
# Universahl Tyme Coordinatay
#Outputs something like 2013-07-09 15:15:19.695531

ファイルが存在することの証明

C:\Python33\myscripts>ls
__pycache__  ex1.out  ex2.out  ex3.py    helloworld.py              read1.py
datetime.py  ex1.py   ex2.py   first.py  pythonintoimportexport.py  test.py

ここが神秘的なところです!

C:\Python33\myscripts>python datetime.py
Traceback (most recent call last):
  File "datetime.py", line 2, in <module>
    import datetime
  File "C:\Python33\myscripts\datetime.py", line 3, in <module>
    print(datetime.datetime.utcnow())
AttributeError: 'module' object has no attribute 'utcnow'

質問

同じコードが Python シェルでは機能するのに、スクリプトとして実行すると機能しないのはなぜですか?

4

4 に答える 4

2

@Sukrit Kalra が言うようdatetime.pyに、ファイル名として使用しないでください。Python は、どれがどれであるかについて混乱していdatetimeます (そして、自分自身をインポートしています!)。多分;

 $ mv datetime.py my_datetime.py
于 2013-07-09T20:06:50.107 に答える