ian*_*n93 5 python windows import
我的python脚本从IDLE运行良好,但是当我尝试从命令行运行它们时,事情就出错了.首先我在导入pygame时遇到了麻烦,但我将C:\ Python27\Lib\site-packages添加到PYTHONPATH环境变量中,一切都很好,我想.但是,现在当我尝试从命令行运行某些东西时,我得到了这个:
C:\Users\Ian Sinke\Documents\Pong>python pong.py
'import site' failed; use -v for traceback
Traceback (most recent call last):
File "pong.py", line 3, in ?
import pygame
File "C:\Python27\Lib\site-packages\pygame\__init__.py", line 27, in ?
import sys, os, string
File "C:\Python27\Lib\os.py", line 63, in ?
import ntpath as path
File "C:\Python27\Lib\ntpath.py", line 401
backslash, dot = (u'\\', u'.') if isinstance(path, unicode) else ('\\', '.')
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
这不是本地化问题; 当我尝试从命令行运行另一个脚本时,我得到了这个:
C:\Users\Ian Sinke\Documents>python app.py
'import site' failed; use -v for traceback
Traceback (most recent call last):
File "app.py", line 4, in ?
import urllib2
File "C:\Python27\Lib\urllib2.py", line 92, in ?
import base64
File "C:\Python27\Lib\base64.py", line 346
with open(args[0], 'rb') as f:
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
而且语法肯定没问题......
Pong.py的开头是这样的:
#import sys
import math
import pygame
import time
from pygame.locals import *
# Helper functions
def centerdist(paddletop, balltop):
return balltop - paddletop - 30
# Constants
BLACK = 0, 0, 0
pygame.init()
Run Code Online (Sandbox Code Playgroud)
sen*_*rle 10
这听起来像你在计算机上有两个不同版本的Python.一个是更新版本,它接受Python版本的三元表达式,一个是旧版本.使用IDLE时,会调用较新的版本.使用命令行时,将调用旧版本.您可以通过python -V从命令行运行来确认或反驳此假设.
详细说明,Python 2.5中添加了对条件表达式的支持.因此,当你修改时PYTHONPATH,你运行了一个较新的python文件(从2.7,听起来像)与旧版本的python(2.4,根据你的测试).
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |