Ошибка типа: объект 'module' не вызывается: модуль Calender

1

Я использую функцию календаря в python в первый раз, это мой код:

import calendar

print ("The calender of year 2018 is : ")
print (calendar.calendar(2018,2,1,6))
print ("The starting day number in calendar is : ",end="")
print (calendar.firstweekday())

Я получаю вывод followng

The calender of year 2018 is : 
Traceback (most recent call last):
  File "C:/Users/AAKASH PATEL/Desktop/calendar.py", line 5, in <module>
    import calendar
  File "C:/Users/AAKASH PATEL/Desktop\calendar.py", line 10, in <module>
    print (calendar.calendar(2018,2,1,6))
TypeError: 'module' object is not callable

Как я могу решить эту проблему?

Теги:

3 ответа

3
Лучший ответ

Переименуйте имя своего сценария с calendar.py на calendarScript.py

"C:/Users/AAKASH PATEL/Desktop/calendar.py"

в

"C:/Users/AAKASH PATEL/Desktop/calendarScript.py", 

Примечание. Не называйте свой сценарий тем же именем, что и модуль.

  • 0
    calendarScript : не очень Python ic ( PEP8 ).
  • 0
    @CristiFati ... это просто пример :)
2

Вы назвали свой скрипт calendar.py, поэтому он импортируется. Вы можете увидеть это в traceback:

  File "C:/Users/AAKASH PATEL/Desktop/calendar.py", line 5, in <module>
    import calendar
  File "C:/Users/AAKASH PATEL/Desktop\calendar.py", line 10, in <module>
    print (calendar.calendar(2018,2,1,6))

Итак, import calendar импортированный calendar.py, который теперь имеет calendar атрибутов, который является вашим скриптом.

Переименуйте свой скрипт, чтобы не замаскировать встроенную библиотеку; например, calendar_demo.py будет в порядке. Как только вы это сделаете, он отлично работает, в моей системе он выводит:

The calender of year 2018 is :
                                  2018

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7                1  2  3  4                1  2  3  4
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       5  6  7  8  9 10 11
15 16 17 18 19 20 21      12 13 14 15 16 17 18      12 13 14 15 16 17 18
22 23 24 25 26 27 28      19 20 21 22 23 24 25      19 20 21 22 23 24 25
29 30 31                  26 27 28                  26 27 28 29 30 31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                   1          1  2  3  4  5  6                   1  2  3
 2  3  4  5  6  7  8       7  8  9 10 11 12 13       4  5  6  7  8  9 10
 9 10 11 12 13 14 15      14 15 16 17 18 19 20      11 12 13 14 15 16 17
16 17 18 19 20 21 22      21 22 23 24 25 26 27      18 19 20 21 22 23 24
23 24 25 26 27 28 29      28 29 30 31               25 26 27 28 29 30
30

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                   1             1  2  3  4  5                      1  2
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       3  4  5  6  7  8  9
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      10 11 12 13 14 15 16
16 17 18 19 20 21 22      20 21 22 23 24 25 26      17 18 19 20 21 22 23
23 24 25 26 27 28 29      27 28 29 30 31            24 25 26 27 28 29 30
30 31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7                1  2  3  4                      1  2
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       3  4  5  6  7  8  9
15 16 17 18 19 20 21      12 13 14 15 16 17 18      10 11 12 13 14 15 16
22 23 24 25 26 27 28      19 20 21 22 23 24 25      17 18 19 20 21 22 23
29 30 31                  26 27 28 29 30            24 25 26 27 28 29 30
                                                    31

The starting day number in calendar is : 0

Обратите внимание, что calendar.calendar(2018) будет достаточным; значения по умолчанию для следующих трех аргументов (w для ширины столбца, l для строк в неделю и c для интервалов между столбцами месяца) равны соответственно 2, 1 и 6.

1

При копировании кода и его выполнении он отлично работает! Но я вижу, что это кажется вашим сценарием, где у вас этот код называется calendar.py! Python тогда думает, что это то, что вы хотите импортировать! Поэтому переименуйте свой скрипт на что-то еще!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню