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

Dio*_*oal 7 python windows virtualenv pyramid

问题:如何在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

解:

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

Ric*_*Vel 0

我在这里没有真正的答案,因为我既不使用 Pyramid 也不使用 Windows。然而,这已经被一些人看到过,可能是由于python.exe被用来执行pserve.exe,它不起作用,因为它是一个可执行文件而不是Python程序。

以下是一些可能会推动这一进程的链接 - 建议您加入 Google Group,因为它拥有更集中的金字塔专业知识:

一个具体的想法是确保您没有一个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 更容易开发。