En touchant python "C'est ...? Tu n'as pas vu le fichier pyc dernièrement?"
J'ai remarqué.
Ensuite, les spécifications ont changé fermement (même si elles sont assez anciennes), alors je l'ai écrite
Officiellement, cette explication est écrite.
CPython compiles its source code into "byte code", and for performance reasons, it caches this byte code on the file system whenever the source file has changes. This makes loading of Python modules much faster because the compilation phase can be bypassed. When your source file is foo.py, CPython caches the byte code in a foo.pyc file right next to the source.
https://www.python.org/dev/peps/pep-3147/
Pour résumer en 3 lignes
--Compilez le code source importé de temps en temps pour en faire un fichier binaire lisible par ordinateur! ―― Les fichiers binaires se chargent très rapidement!
Est écrit. (Très dur)
Par conséquent, il joue un rôle dans l'accélération de la lecture.
├─ a.py
├─ b.py
└─ c.py
a.py
import b
import c
b.hello()
c.goodmorning()
b.py
def hello():
print("hello")
c.py
def goodmorning():
print("goodmorning")
hello
goodmorning
$ ls
a.py b.py b.pyc c.py c.pyc
pyc a été Hello.
Mais parfois, ce fichier pyc n'a pas été créé tout de suite.
Clairement
J'ai pensé, mais ce n'était pas le cas.
Il semble que l'emplacement de stockage a changé depuis python3.2.
Pour éviter que ces nouveaux fichiers n'encombrent le répertoire source, les fichiers pyc sont maintenant collectés dans le répertoire "pycache" sous le répertoire du package.
https://docs.python.org/ja/3/whatsnew/3.2.html#pep-3147-pyc-repository-directories
Hmmm, c'était sûrement double et difficile de trouver le code source.
Vous avez donc changé la méthode de gestion.
Cette fois, il a la même structure de fichiers, mais confirmé avec python3.2 (je l'ai essayé avec 2.7 ci-dessus)
├─ a.py
├─ b.py
└─ c.py
a.py
import b
import c
b.hello()
c.goodmorning()
b.py
def hello():
print("hello")
c.py
def goodmorning():
print("goodmorning")
$ ls
__pycache__ a.py b.py c.py
$ ls __pycache__/
b.cpython-37.pyc c.cpython-37.pyc
J'ai pu confirmer que .pyc a été créé sous pycache / comme ça!
Recommended Posts