delete * .pyc

У меня есть три модуля:

one.py :

 def abc(): print "Heeeeeeeeeeeiiiiiioooooooooo" 

two.py :

 import one def defg(): one.abc() 

three.py :

 import os from time import sleep import two two.defg() sleep(20) directory = os.listdir('.') for filename in directory: if filename[-3:] == 'pyc': print '- ' + filename os.remove(filename) 

У меня есть три сомнения. Пожалуйста, помогите мне .

Когда я запускаю three.py в первый раз, будут созданы one.pyc и two.pyc . Я вижу это, так как я дал задержку в 20 секунд. После выполнения инструкции os.remove(filename) они удаляются. До сих пор его штраф.

Опять же, не закрывая IDLE, а также скрипт, я запускал three.py . На этот раз не был создан файл .pyc . Почему это так ?

Если я закрою IDLE, а также скрипт, .pyc будет создан по-прежнему.

Почему скомпилированный код не создается снова и не работает?

Кроме того, если я one.py изменения в one.py он не будет отображаться, если я запускаю без закрытия оболочек. Мне тоже нужно решение для этого.

Третье сомнение заключается в том, что скомпилированный код сначала удаляется, а затем второй запуск дает тот же результат без .pyc ?

Надеюсь на решение …

  • Как создать или открыть базу данных со значением, хранящимся в переменной
  • Как предотвратить состояние гонки, когда несколько процессов пытаются записать и затем прочитать из файла одновременно
  • matplotlib: как изменить цвет точек данных на основе некоторой переменной
  • Текст центра / среднего выравнивания с PIL?
  • Кросс-платформенный путь к каталогу рабочего стола?
  • Как разбить вектор на столбцы - используя PySpark
  • Как установить lessc и nodejs в виртуальной среде Python?
  • Самая длинная общая подстрока из более чем двух строк - Python
  • 3 Solutions collect form web for “delete * .pyc”

    .pyc не создается снова, потому что есть ссылка на импортированный модуль в коде. При повторном запуске эта ссылка используется.

    Вот почему .pyc не генерируется снова, а также почему дополнительные изменения вы делаете arent, чтобы запустить.

    Вы можете либо удалить все ссылки, либо вызвать сбор мусора, либо использовать встроенную функцию reload () в модулях. например:

     reload(three) 

    Я думаю, что IDLE кэширует байт-код в своем собственном процессе Python, поэтому ему не нужно регенерировать его каждый раз, когда файл запущен.

    Измените ~ / .bashrc и добавьте к нему эту функцию оболочки

    $ cd; pyclean

     pyclean () { find . -type f -name "*.py[co]" -delete find . -type d -name "__pycache__" -delete } 
    Python - лучший язык программирования в мире.