Je pensais ne pas avoir vu le fichier pyc récemment, mais il a été isolé dans pycache par python3

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

Qu'est-ce qu'un fichier pyc?

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.

Créons un fichier pyc!

 ├─ 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")

résultat

hello
goodmorning

$ ls
a.py		b.py		b.pyc		c.py		c.pyc

pyc a été Hello.

La vérité sur la localisation de pyc

Mais parfois, ce fichier pyc n'a pas été créé tout de suite.

Clairement image.png

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.

Vérifiez le nouveau fichier pyc

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")

résultat

$ 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

Je pensais ne pas avoir vu le fichier pyc récemment, mais il a été isolé dans pycache par python3
Lisez le fichier ligne par ligne avec Python
Lisez le fichier ligne par ligne avec Python
Le nom du fichier était mauvais en Python et j'étais accro à l'importation
Dans bash, "supprimez le fichier s'il existe".
Le nom de fichier enregistré par pysheng était un nombre hexadécimal, donc je l'ai corrigé.
Lorsque j'ai vérifié la requête générée par Django, elle a été émise en grand nombre
Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier
Je me suis demandé si Python 3.4 était plus rapide, mais c'était plus lent
Python: peut être répété en lambda
C'était génial d'éditer le fichier Python dans Raspberry Pi avec la fonction à distance d'Atom
[Python] Ouvrez le fichier csv dans le dossier spécifié par pandas
J'ai pensé à la logique qui divise / 22 ou / 23 en / 24 unités en spécifiant la plage IP en Python.
Vérifiez si le hachage de mot de passe généré par PHP correspond en Python
Supprimer un caractère spécifique en Python s'il s'agit du dernier
Trier les noms de fichiers obtenus par Python glob dans l'ordre numérique
Enregistrez le fichier binaire en Python
J'ai écrit la file d'attente en Python
J'ai écrit la pile en Python
Lorsque j'ai essayé d'exécuter Python, j'ai été ignoré dans le Microsoft Store
Un mémo organisé en renommant les noms de fichiers dans le dossier avec python
J'ai défini des variables d'environnement dans Docker et je les ai affichées en Python.
Vérifiez le nom du fichier si l'importation Python vous dit que vous ne pouvez pas
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
J'ai créé un script pour vérifier si l'anglais est entré dans la position spécifiée du fichier JSON en Python.
Je pensais que c'était la même chose que python, et j'étais accro au problème que l'interpréteur ruby ne démarre pas.
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
Vérifiez si l'URL existe en Python
Je ne connaissais pas les bases de Python
[Python] Lire la ligne spécifiée dans le fichier
Le fichier édité avec vim était en lecture seule, mais je veux le sauvegarder
Notez que je comprends l'algorithme des moindres carrés. Et je l'ai écrit en Python.
Conversion de Fourier du fichier wav lu par Python, conversion inverse et réécriture
[Python] Aucun J'ai créé nullutil.py car il était encombré de vérifications et de branchements.
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4