簡體   English   中英

PyCharm 5.0.4上python.exe中的SyntaxError

[英]SyntaxError in python.exe on PyCharm 5.0.4

我在PyCharm 5.0.4中運行python Web應用程序,出現錯誤:

C:\Users\xxx\AppData\Local\Programs\Python\Python35-32\python.exe C:\Users\xxx\AppData\Local\Programs\Python\Python35-32\python.exe C:/Users/xxx/PycharmProjects/xxxxx/run.py
File "C:\Users\pli\AppData\Local\Programs\Python\Python35-32\python.exe", line 1
SyntaxError: Non-UTF-8 code starting with '\x90' in file C:\Users\pli\AppData\Local\Programs\Python\Python35-32\python.exe on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Process finished with exit code 1

我的python版本是3.5.1。 但是我可以從CMD運行python代碼。 我在想這是否是因為配置,因為python.exe中不應出現此類錯誤。

配置 https://s14.postimg.org/ren7faib5/Screenshot_2016_02_27_13_06_01.png

該代碼是Flask通用的Web應用程序代碼:

# -*- coding: utf-8 -*-
import datetime

from flask import g, session, request, make_response
from flask_sqlalchemy import SQLAlchemy
from app.users.models import User, UserSession
from app import app, db

@app.before_request
def before_request():
    g.user = None
    if session.get('user_id'):
        user = User.query.filter_by(id=session.get('user_id')).first()
        g.user = user
....

問題是因為“運行/調試配置”上的“解釋器選項”。 我發現“解釋器選項”中的內容是“ C:\\ Users \\ xxx \\ AppData \\ Local \\ Programs \\ Python \\ Python35-32 \\ python.exe”。 但這不是法律命令。

因此,要解決此問題,我打開“工具”->“運行/調試配置”->將“解釋器選項”設置為空,一切正常。

在此處輸入圖片說明

因此,對於那些不懂中文的人,(建議刪除該答案)建議為該文件定義源代碼編碼。

如果您足夠仔細地閱讀了該錯誤,PyCharm會告訴您解決此問題所需的一切:

SyntaxError:第1行的C:\\ Users \\ pli \\ AppData \\ Local \\ Programs \\ Python \\ Python35-32 \\ python.exe文件中以'\\ x90'開頭的非UTF-8代碼,但未聲明編碼; 有關詳細信息,請參見http://python.org/dev/peps/pep-0263/

現在,如PEP 0263中所述

如果未給出其他編碼提示,則Python將默認使用ASCII作為標准編碼。要定義源代碼編碼,必須在源文件中放置魔術注釋作為文件的第一行或第二行。

您是否嘗試過在魔術注釋中注明源代碼,例如:

# -*- coding: utf-8 -*-

...

我記得在遇到同樣的問題之前,定義源代碼編碼立即為我解決了這個問題。

我有一個類似的問題。 但是以我為例,我選擇了Python.exe路徑來代替“腳本路徑”。

看完上面的屏幕截圖后,我了解腳本路徑應該是我們正在運行的當前腳本。 修復了這個問題,它起作用了。 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM