Changing the directory where .pyc files are created

Question:

Is there a way to change the directory where .pyc file are created by the Python interpreter? I saw two PEPs about that subject (0304 and 3147), but none seems to be implemented in the default interpreter (I’m working with Python 3).

Did I miss something ?

Asked By: Scharron

||

Answers:

There’s no way to change where the .pyc files go. Python 3.2 implements the __pycache__ scheme whereby all the .pyc files go into a directory named __pycache__. Python 3.2 alpha 1 is available now if you really need to keep your directories clean.

Until 3.2 is released, configure as many tools as you can to ignore the .pyc files.

Answered By: Ned Batchelder

This might be useful for some:
Miscellaneous options, especially -B option:

If given, Python won’t try to write .pyc files on the import of source
modules. See also PYTHONDONTWRITEBYTECODE.

Answered By: Hans

Python files are NOT always stored in the same directory and will get directed to pycache if you use pycache. Any answers on being able to have custom locations and names, because importing the module is rather temperamental and doesn’t always work. You will be able see what I mean at github.com/LolexInc/Lolex-Tools/tree/Beta and view JTToolsInstaller.py. There is a lot of mess in it.

Answered By: Lolex Inc

Yes, starting from Python 3.8 you can control this behavior. The original discussion starts from pep 304 in 2003.

While this original PEP was withdrawn, a variant of this feature was
eventually implemented for Python 3.8 in https://bugs.python.org/issue33499

In the result, you can control using PYTHONPYCACHEPREFIX=path, -X pycache_prefix=path and sys.pycache_prefix.

Answered By: funnydman
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.