我有一个在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"
答案 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"