如何导入枚举

如何导入枚举

我在 Mac(OSX 10.9.4)上安装了 Python 3.4.1,我需要使用枚举。我开始在文本文件中编写脚本:

#!/usr/bin/python
from enum import Enum

从终端:

chmod 0700 myscript.py
./myscript.py

但我收到以下错误:

from enum import Enum
ImportError: No module named enum

同时,如果我使用IDLE,则以下命令没有任何问题:

from enum import Enum

如何使用脚本文件中的枚举?

编辑:

如果我echo $PYTHONPATH什么都没有打印。以下是输出print(sys.path)

['/Users/Marco/Desktop/scripts', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages']

我可以看到第一个路径对应于所在的目录myscript.py,而且它似乎使用了 2.7 版本的 python,即使我刚刚安装了最新版本(3.4.1)。

答案1

请替换第一行:

#!/usr/bin/python

如下所示:

#!/usr/bin/env python3

这应该对你有用。

前者被硬编码为始终运行/usr/bin/python,而后者将运行当前环境中默认的 python (尝试echo $PATH)。

另请参考以下答案:

这两个 Python Shebang 有什么区别

为什么人们在 Python 脚本的第一行写 #!/usr/bin/env python?

相关内容