【发布时间】:2026-01-04 11:45:01
【问题描述】:
使用 Python 2.7,操作系统:Ubuntu 16.04 64 位。
我正在使用 Python C API 编写一个示例应用程序。我已经创建了一个虚拟环境并在 virtualenv 中安装了依赖包来运行这个应用程序。下面是我的代码。
#include <iostream>
#include <Python.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char* argv[]){
Py_OptimizeFlag=1;
//Py_SetPythonHome((char *)"/home/user/workspace/venv_2_7/bin/python");
Py_SetProgramName((char *)"python_test");
Py_Initialize();
PySys_SetPath((char *)"/home/user/workspace/venv_2_7/lib;/home/user/workspace/venv_2_7/lib/python2.7/site-packages;");
PySys_SetArgv(argc, argv);
PyObject* PyFileObject = PyFile_FromString((char *)"/home/user/Projects/python_test/test.py", (char *)"r");
int ret = PyRun_SimpleFileEx(PyFile_AsFile(PyFileObject), (char *)"/home/user/Projects/python_test/test.py", 1);
if (ret != 0) {
printf ("Failed to launch the application.\n");
return 0;
}
Py_Finalize();
return 0;
}
当我运行这个文件时,我收到了这个错误:
Traceback (most recent call last):
File "/home/user/Projects/python_test/test.py", line 23, in <module>
....
File "/home/user/Projects/python_test/sample/__init__.py", line 12, in <module>
import logging
ImportError: No module named logging
该消息清楚地表明,当我们运行应用程序时,未找到应用程序所需的系统和其他包。即使我设置了路径,也没有找到。
- 如何告诉应用程序在哪里可以找到所有必需的系统和其他包?
- 如何通过API设置才不会报错?
【问题讨论】:
标签: python python-2.7 python-3.x python-c-api