问题:如何解决在windows中执行pude on virtualenv时出现的无ascii字符错误?
描述:我正在尝试在windows上的virtualenv中执行pserve(pyllons / pyramid开发Web服务器)。这是一个全新的安装,所以它可能与版本有关。
问题:激活virtualenv后,执行pserve config.ini
抛出错误: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
注意:
完成测试:
环境:
SOLUTION:
再次卸载并安装解决了我的问题。
答案 0 :(得分:0)
我在这里没有答案,因为我不使用金字塔或Windows。但是,之前有一些人已经看到过这种情况,可能是由于python.exe
被用来执行pserve.exe
,这将无法执行,因为它不是Python程序的可执行文件。
以下是一些可能推动此进展的链接 - 建议您加入Google群组,因为它拥有更集中的金字塔专业知识:
一个具体的想法是确保您的pserve.py
文件不是pserve.exe
,并且您使用python pserve.py
来运行它。如果调用脚本有限制,请创建一个run-pserve.bat
批处理文件来调用Python并在调用脚本之外对其进行测试。
或者,您可能希望在Windows上使用预配置的Linux VM。或者在Windows 10上有一个很好的'Bash for Windows'又名Windows Subsystem for Linux,它真的是一个完整的Ubuntu Linux。我认为,这些都可以使开发变得比Windows更容易。
答案 1 :(得分:0)
假设您的virtualenv
位于venv
目录
使用此:
python venv/Lib/site-packages/pyramid/scripts/pserve.py some-ini-config.ini --reload
答案 2 :(得分:0)
此错误消息带有建议,内容为
SyntaxError:/path/to/file
行上文件#lineno
中的非ASCII字符'\ x90',但未声明编码; 有关详细信息,请参见http://python.org/dev/peps/pep-0263/
粗体字是建议所在的地方。该PEP非常简单,解决方案是为源文件定义编码。 您最有可能拥有
#!/usr/bin/env python
# coding=utf-8
解释器行是可选的,但是如果您具有解释器行,则可以第二次定义编码,否则,请先定义
根据字符集设置编码。 utf-8在大多数情况下都可以使用,或者您可能需要其他编码。