2010-08-19 14 views
25

Czy istnieje sposób zmiany katalogu, w którym plik .pyc jest tworzony przez interpreter języka Python? Widziałem dwa PEP o tym temacie (0304 i 3147), ale żaden nie wydaje się być zaimplementowany w domyślnym interpreterze (pracuję z Pythonem 3).Zmiana katalogu, w którym tworzone są pliki .pyc

Czy coś mi umknęło?

+0

Czy możesz powiedzieć nam więcej o tym, dlaczego chcesz je przenieść? –

+5

To było tylko z ciekawości, aby utrzymać porządek w katalogach. – Scharron

+0

Zastanawiało mnie to samo. Mam przypadek, w którym katalogi z plikami źródłowymi nie są zapisywalne i chcą przenieść pycache tak, aby wszyscy użytkownicy mogli korzystać z pamięci podręcznej bez konieczności zapisu dostępu do rzeczywistych katalogów plików źródłowych Pythona. – mattgately

Odpowiedz

19

Nie można zmienić miejsca, w którym znajdują się pliki .pyc. Python 3.2 implementuje schemat __pycache__, w którym wszystkie pliki .pyc przechodzą do katalogu o nazwie __pycache__. Python 3.2 alpha 1 jest już dostępny, jeśli naprawdę potrzebujesz zachować swoje katalogi w czystości.

Do czasu wydania wersji 3.2 skonfiguruj jak najwięcej narzędzi, aby zignorować pliki .pyc.

+1

Wersja 3.2 jest już dostępna! Yay! – Scharron

+0

Twoje niestandardowe pliki .py są kompilowane i przechowywane w pliku .pyc w folderze '__pycache__' w tym samym katalogu. Znajdziesz popularne pliki skompilowane w 'C: \ Python34 \ Lib \ __ pycache__'. –

-2

Nie, niczego nie przegapiłeś.

Pliki .pyc są zawsze tworzone w lokalizacji pliku `.py.

Istnieje kilka naprawdę starych łatek do całkowitego wyłączenia plików .pyc. Ale ... dlaczego musisz?

+27

Dlaczego musisz? Ponieważ podwajają one rozmiar każdego wykazu katalogów, który masz ze śmieciami, których nie potrzebujesz widzieć. Trzymam moje .o's z dala od plików .cpp, dlaczego nie powinienem trzymać mojego pliku .pyc z dala od moich .py? –

16

Może to być przydatne dla niektórych: Miscellaneous options

-B Jeśli podano, Python nie będzie starał się pisać .pyc lub .pyo plików na import modułów źródłowych. Zobacz także PYTHONDONTWRITEBYTECODE.

New in version 2.6. 
0

plików Python nie zawsze są przechowywane w tym samym katalogu i będzie się kierować do pycache jeśli używasz pycache. Wszelkie odpowiedzi dotyczące możliwości tworzenia niestandardowych lokalizacji i nazw, ponieważ importowanie modułu jest dość porywające i nie zawsze działa. Będziesz mógł zobaczyć, co mam na myśli na github.com/LolexInc/Lolex-Tools/tree/Beta i zobaczyć JTToolsInstaller.py. Jest w tym dużo bałaganu.

Powiązane problemy