2017-07-17 4 views
2

私は最も奇妙な問題があります。Pythonモジュールオブジェクトには属性がありませんstruct_timeはOSX Sierraではホームブリュで、debianではなく

from datetime import datetime, date, time 
now = datetime.now() 
print(now) 
print(now.strftime("%d/%m/%y %H:%M")) 

と期待を与える:このPythonコードは、株式Debianの実行中のラズベリーパイに働くのPythonでOSXシエラで

2017-07-17 08:17:17.567342 
17/07/17 08:17 

を自作介してインストールそれは与える:

2017-07-17 08:10:21.196849 
2017-07-17 08:10:21.197579 
Traceback (most recent call last): 
    File "time.py", line 6, in <module> 
    print(now.strftime("%d/%m/%y %H:%M")) 
    File "/Users/craign/Desktop/time.py", line 6, in <module> 
    print(now.strftime("%d/%m/%y %H:%M")) 
AttributeError: 'module' object has no attribute 'struct_time' 

私は持っている:

$ brew --version 
Homebrew 1.2.4 
$ python --version 
Python 2.7.13 

誰もが考えている?私はinterwebs、StackOverflowなどを磨いてきました。これに夢中になり、馬鹿のように感じます。

+0

Debian(ラズベリーパイ)のPythonのバージョンは? –

+0

インポート中に名前の競合に問題があると思います。実際には[datetime.time](https://docs.python.org/2/library/datetime.html#datetime.time)をインポートします。しかし、 'struct_time'は[time] モジュール(https://docs.python.org/2/library/datetime.html#datetime.time)のメンバーです。どういうわけか輸入時には、ある名前は別の名前で覆われています。私が示唆しているのは、すべてのdatetimeインポートで**をdatetimetimeとしてのdatetime import timeから**を使用して問題が解決するかどうかを確認することです。 –

+0

running.tが正しいと思います。 OPのモジュールはtime.pyという名前で、おそらくPythonの時間を隠しています。 – BoboDarph

答えて

1

time.pymy_time.pyで変更するか、何かが気になるところでファイルtime.pycを削除して、コンパイルが正常に動作するはずです。セットアップに間違いはありませんが、これは期待される動作であり、簡単に再現できます。

なぜですか?:モジュールtimeはすでにPythonに存在していて、間違ってそれを無効にしました。

関連する問題