为什么.pyc文件有时在同一目录中创建,有时在__pycache__子目录中创建?

Ase*_*sal 3 python python-2.7 python-3.x

我使用的是Windows 7并安装了Python 2.7.5和3.3.2.我的path环境变量设置为

C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\python27;C:\Python33\Scripts
Run Code Online (Sandbox Code Playgroud)

当我将任何Python模块导入另一个模块时,.pyc会创建一个文件.创建它的地方取决于是调用Python2还是运行Python3.

  • 当我双击模块时,.pyc文件在同一目录中创建
  • 当我通过IDLE编辑然后运行它然后在子目录中创建文件.
  • 如果我#! Python3在顶部添加,则双击使该.pyc文件位于子目录中.

我理解这是因为Python2和Python3决定管理字节编译代码的方式不同.

我目前专注于Python3,并希望仅在子目录中创建文件.

我尝试编辑path变量以在Python 2之前放置Python3,以便调用Python3而不是Python2.即使在更改它之后,当我双击未发生的Python脚本并且在同一目录中创建了字节编译的代码时.

所以Python2用于双击运行Python脚本.导致此行为的原因是如何在不卸载Python2的情况下确保调用Python3而不是Python2?

Abe*_*lus 9

Python 3改变了bytecode(.pyc)文件的存储方式.Python 2使用将它们放在同一目录中的约定,但对于Python 3,开发人员决定通过将它们全部放在一个单独的目录中来减少混乱.这也使CPython以外的Python实现更容易支持,因为每个实现都可以.pyc__pycache__目录中拥有自己的文件,而不是覆盖其他实现中的文件.

  • 更改是在 Python 3.2 中,特别是在 Python 3 中作为一个整体。 (2认同)