Python脚本:在Shell中运行但在现实生活中失败,因为无法导入模块

时间:2011-06-16 01:47:23

标签: python import shebang

我有一个在Python Shell中运行良好的脚本,但是当双击它时,它无法导入PIL模块(但它确实导入了Shell中的PIL模块)。

有什么问题?我需要一个不同的shebang吗?我在Windows 7上:

#!/usr/bin/env python
"""

"""

try:
    from   PIL import Image
    import os
    import datetime
    import time

except Exception, e:
    raw_input(str(e))

# Running this script in the Shell, the code gets to here
# Running this script in real life (just double click it) it prints "no module PIL"

4 个答案:

答案 0 :(得分:3)

添加行

import sys
print sys.executable

代码。当你在shell中运行它时,你会发现它是一个不同的python可执行文件,而不是双击.py文件。

如果要控制使用哪个已安装的python版本来运行脚本,而不是简单地运行脚本,请在Windows命令窗口中键入以下内容。

c:\python27\python.exe scriptname.py

根据需要替换python目录和脚本名称。

答案 1 :(得分:2)

Windows忽略了shebang行(即使它会尊重它,它也无法执行/usr/bin/env - 它在Windows上不存在)。双击资源管理器将使用与.py扩展名关联的程序启动脚本。检查您是否已将其设置为正确版本的Python。

答案 2 :(得分:0)

听起来你为不同版本的Python安装了PIL而不是在Windows中设置打开.py文件。如果您使用的是Python 2.7,PIL会自行安装到C:\Python27\Lib\site-packages\PIL,在这种情况下,您需要确保Windows打开带有C:\Python27\python.exe的.py文件。您可以右键单击.py文件,单击打开方式 - >选择默认程序...将其设置为您已安装PIL for的Python版本。

答案 3 :(得分:0)

我也遇到了这个问题,但意识到我需要更新app.yaml文件。将其粘贴到libraries

- name: PIL
  version: "1.1.7"