相关疑难解决方法(0)

Py_Initialize失败 - 无法加载文件系统编解码器

我试图整理一个使用python 3.2的简单c ++测试项目.该项目构建正常,但Py_Initialize引发致命错误:

Fatal Python error: Py_Initialize: unable to load the file system codec
LookupError: no codec search functions registered: can't find encoding
Run Code Online (Sandbox Code Playgroud)

最小代码:

#include <Python.h>

int main (int, char**)
{
  Py_Initialize ();
  Py_Finalize ();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

操作系统是32位Vista.

使用的python版本是一个python 3.2调试版本,使用VC++ 10从源代码构建.

来自同一版本的python_d.exe文件运行没有任何问题.

有人可以解释这个问题以及如何解决它吗?我自己的google-fu让我失望了.

编辑1

经过python源代码后,我发现,正如错误所说,没有注册编解码器搜索功能.这两个codec_registerPyCodec_Register是他们应该的.这就是代码中没有任何一个被调用的函数.

我真的不知道这意味着什么,因为我仍然不知道应该何时以及从何处调用这些函数.从我的其他python构建(3.1.3)的源代码中完全没有引发错误的代码.

编辑2

我在下面回答了我自己的问题.

c++ python

62
推荐指数
7
解决办法
9万
查看次数

致命的 Python 错误:init_fs_encoding:尝试启动 uwsgi 时,无法获取文件系统编码的 Python 编解码器

我试图在我的虚拟环境中启动我的 uwsgi 服务器,但是在我添加plugin python3选项后,我每次都会收到此错误:

!!! Python Home is not a directory: /home/env3/educ !!!
Set PythonHome to /home/env3/educ
Python path configuration:
  PYTHONHOME = '/home/env3/educ'
  PYTHONPATH = (not set)
  program name = '/home/env3/educ/bin/python'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = '/home/env3/educ/bin/python'
  sys.base_prefix = '/home/env3/educ'
  sys.base_exec_prefix = '/home/env3/educ'
  sys.executable = '/home/env3/educ/bin/python'
  sys.prefix = '/home/env3/educ'
  sys.exec_prefix = '/home/env3/educ'
  sys.path = [
    '/home/env3/educ/lib/python38.zip',
    '/home/env3/educ/lib/python3.8',
    '/home/env3/educ/lib/python3.8/lib-dynload',
  ]
Fatal Python error: init_fs_encoding: failed to get the …
Run Code Online (Sandbox Code Playgroud)

python django ubuntu uwsgi

11
推荐指数
3
解决办法
7464
查看次数

标签 统计

python ×2

c++ ×1

django ×1

ubuntu ×1

uwsgi ×1