2017-05-03 43 views
2

CPython 3.x和PyPy跟隨PEP 3147並將pyc-files存儲在__pycache__目錄中,並附帶Python版本後綴。 如何強制CPython 2.7將其pyc文件存儲在__pycache__目錄中(與其在默認行爲中將pyc文件存儲在相同目錄中相應py文件旁邊的缺省行爲相反)?如何讓CPython 2.7使用__pycache__目錄?

我意識到我可能不應該這樣做系統範圍,因爲很多其他軟件預計CPython 2.x的默認行爲。所以我正在尋找的是一種在每個項目或每個虛擬環境中執行此操作的方法,或者,如果沒有其他解決方案,則按照自定義編譯和自定義安裝(例如在~/bin)CPython解釋器。


一些研究:在Debian郵件列表上的Relevant discussion;用於CPython 3.2中的PEP 3147實現的code review

+0

我發現了另一個存檔的討論,闡明瞭爲什麼沒有被移植,請看看它,如果你願意。 –

+0

@JimFasarakisHilliard謝謝,我只是看着它。但有些奇怪的是,儘管PEP表明這不是一個可選功能。 –

回答

3

雖然PEP 3147的backports部暗示它的可能性被向後移植:

對於早於3.2(和可能 2.7),因此能夠反向移植此PEP的Python版本。但是,在Python 3.2(和可能是 2.7)中,此行爲將默認打開,事實上,它將替換舊的行爲。

據我所知,這還沒有完成。討論here表明爲什麼:

我寧願這不是在2.7。該修補程序可能很簡單,但它代表了一個非常古老的Python行爲中的相當大的變化。

這是來自Python 2.7發佈管理器的回覆,他(正確地說imho)不希望此功能被移植。

最後,你唯一的選擇是自己實現它(這是一個不平凡的任務)。

相關問題