1
使用Python 2.7,操作系統:Ubuntu 16.04 64位。Python包路徑問題
我正在使用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設置,以便我們沒有得到錯誤?