相关疑难解决方法(0)

SyntaxError:函数返回'£'时文件中的非ASCII字符'\ xa3'

说我有一个功能:

def NewFunction():
    return '£'
Run Code Online (Sandbox Code Playgroud)

我想在它前面打一些带有井号的东西,当我尝试运行这个程序时它会输出错误,显示以下错误信息:

SyntaxError: Non-ASCII character '\xa3' in file 'blah' but no encoding declared;
see http://www.python.org/peps/pep-0263.html for details
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何在返回功能中加入英镑符号?我基本上是在课堂上使用它,它'__str__'包含在包含英镑符号的部分内.

python unicode python-unicode

265
推荐指数
6
解决办法
34万
查看次数

正确的方法来定义Python源代码编码

PEP 263定义了如何声明Python源代码编码.

通常,Python文件的前两行应该以:

#!/usr/bin/python
# -*- coding: <encoding name> -*-
Run Code Online (Sandbox Code Playgroud)

但我看到很多文件以:

#!/usr/bin/python
# -*- encoding: <encoding name> -*-
Run Code Online (Sandbox Code Playgroud)

=> 编码而不是编码.

那么声明文件编码的正确方法是什么?

是否允许编码,因为使用的正则表达式是懒惰的?或者它只是声明文件编码的另一种形式?

我问这个问题是因为PEP没有谈论编码,它只是谈论编码.

python encoding

156
推荐指数
4
解决办法
8万
查看次数

Python:在Unicode转义字符串上使用.format()

我使用的是Python 2.6.5.我的代码需要使用"超过或等于"的符号.在这里:

>>> s = u'\u2265'
>>> print s
>>> ?
>>> print "{0}".format(s)
Traceback (most recent call last):
     File "<input>", line 1, in <module> 
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2265'
  in position 0: ordinal not in range(128)`  
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?有没有正确的方法来做到这一点?我需要使用该.format()功能.

python string unicode python-2.x

154
推荐指数
3
解决办法
8万
查看次数

非ASCII字符'\ x90'在virtualenv内的窗口上执行pserve

问题:如何在windows中解决执行pude on virtualenv的no-ascii字符错误?

描述:我正在尝试在windows上的virtualenv中执行pserve(pyllons/pyramid开发Web服务器).这是一个全新的安装,所以它可能与版本有关.

问题:激活virtualenv后,执行pserve config.inithrow错误:SyntaxError: Non-ASCII character '\x90' in file C:\PATH_TO_MY_ENV_HOME\env\Scripts\pserve.exe on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details.

命令行:

pserve development.ini --reload
Run Code Online (Sandbox Code Playgroud)

笔记:

  1. 如果您的文件的字符与当前文件编码不匹配,则会发生此错误,因此您可以添加指令以在python脚本的边缘设置正确的enconde.
  2. 如果被调用的目标在某些情况下具有exe扩展,并且调用它的脚本将exe添加到结尾,则会发生这种情况.因此,python运行时抛出此错误导致exe文件不能作为脚本调用,而只是在没有sufix添加的情况下调用.
  3. 可执行文件的路径不包含特殊字符.

测试完成:

  1. 从pserve中删除exe扩展名.没工作:没有识别命令信息.
  2. 调用pserve-script.py而不是pserve(也试过完整路径).没有工作:什么也不做,什么都不回报.
  3. 在pserve-script.py的开头添加了" - * - encoding:utf-8".同样的消息.
  4. 从python.exe中删除exe扩展(尝试完整路径).没工作:"创建过程失败".

环境:

  • Windows 10 1607 build 14393.447
  • Python版本:Anaconda2,Python 2.7.11
  • 金字塔版:金字塔1.7.3
  • 虚拟环境:15.1.0

解:

卸载并再次安装解决了我的问题.

python windows virtualenv pyramid

7
推荐指数
1
解决办法
4131
查看次数

从文本文件中读取非ASCII字符

我正在使用python 2.7.我尝试了许多像编解码器这样的东西,但没有用.我怎样才能解决这个问题.

myfile.txt文件

wörd
Run Code Online (Sandbox Code Playgroud)

我的代码

f = open('myfile.txt','r')
for line in f:
    print line
f.close()
Run Code Online (Sandbox Code Playgroud)

产量

s\xc3\xb6zc\xc3\xbck
Run Code Online (Sandbox Code Playgroud)

eclipse和命令窗口的输出相同.我正在使用Win7.当我不从文件中读取时,任何字符都没有问题.

python character-encoding

5
推荐指数
2
解决办法
2万
查看次数

python中打印的括号

我在python中有这行代码

print 'hello world'
Run Code Online (Sandbox Code Playgroud)

反对

print ('hello world')
Run Code Online (Sandbox Code Playgroud)

谁能告诉我两者之间的区别?

我在一个简单的代码中使用它

var = 3
if var > 2: 
    print 'hello'
Run Code Online (Sandbox Code Playgroud)

它无法严格检查var的所有值.但是,如果我将代码定义为

var = 3
if var > 2: 
    print ('hello')
Run Code Online (Sandbox Code Playgroud)

有用!

python printing

5
推荐指数
2
解决办法
2万
查看次数

在Python中声明编码

我想使用以下代码在python中拆分一个字符串:

means="a ? b ? c"
lst=means.split("?")
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

SyntaxError:第2行文件dict.py中的非ASCII字符'\ xd8',但未声明编码; 有关详细信息,请参阅http://www.python.org/peps/pep-0263.html

如何声明编码?

python string

4
推荐指数
2
解决办法
4万
查看次数

运行Python代码时出现"SyntaxError:非ASCII字符"

我从python开始,当我使用解释器并运行此代码时:

>>>peliculas = ["movie1", "movie2", "movie3", "movie4"]
>>>print(peliculas[1])
Run Code Online (Sandbox Code Playgroud)

当我使用Pycharm IDE它不编译:

peliculas = ["movie1", "movie2", "movie3", "movie4"]
print(peliculas[1])
Run Code Online (Sandbox Code Playgroud)

这是输出:

 File "/Users/user/PycharmProjects/untitled/Prueba2.py", line 1
SyntaxError: Non-ASCII character '\xc3' in file /Users/user/PycharmProjects/untitled/Prueba2.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Run Code Online (Sandbox Code Playgroud)

python有什么问题?我正确安装了吗?

python macos python-2.7

4
推荐指数
2
解决办法
1万
查看次数

Python:'ascii'编解码器不能编码字符

我使用以下代码来刮取包含日文字符的网页:

import urllib2
import bs4
import time

url = 'http://www.city.sapporo.jp/eisei/tiiki/toban.html'

pagecontent = urllib2.urlopen(url)
soup = bs4.BeautifulSoup(pagecontent.read().decode("utf8"))

print(soup.prettify())
print(soup)
Run Code Online (Sandbox Code Playgroud)

在某些机器中,代码工作正常,最后两个语句成功打印结果.但是,在某些机器中,最后一个语句会出错

UnicodeEncodeError 'ascii' codec can't encode characters in position 485-496: ordinal not in range(128),
Run Code Online (Sandbox Code Playgroud)

最后一个语句打印所有日文字符的奇怪方块.

为什么两台机器的相同代码工作方式不同?我怎样才能解决这个问题?

Python版本2.6.6

bs4版本:4.1.0

python beautifulsoup

3
推荐指数
1
解决办法
1536
查看次数

在Python中定义unicode变量

最近,我一直在阅读Python源代码编码,尤其是PEP 263PEP 3120.

我有以下代码:

# coding:utf-8

s = 'abc?´ƒ©'
ƒ = 'My name is'
ß = '?ß?ˆ†ˆ? ßå®åø©ˆ'
print('s =', s)
print('ƒ =', ƒ, 'ß =', ß)
Run Code Online (Sandbox Code Playgroud)

此代码适用于Python3,但SyntaxError在Python2.7中生成.
我知道这可能与源代码编码无关.
所以,我想知道是否有办法在Python2中支持Unicode变量名.

总而言之,我也很难弄清楚PEP究竟要解决的实际问题以及我如何(以及在​​何处)利用所提出的解决方案.我已经阅读了相同的讨论,但他们没有提出我的问题的答案,而是对正确语法的解释:

python unicode encoding python-2.7 python-3.5

3
推荐指数
1
解决办法
572
查看次数