3

我正在使用 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

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

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

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

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

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

所以Python2被用来双击运行Python脚本。是什么导致了这种行为,如何确保在不卸载 Python2 的情况下调用 Python3 而不是 Python2?

4

1 回答 1

9

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

于 2013-08-25T07:39:46.990 回答