sách gpt4 ai đã đi

c++ - 在 C++ 中从 PATH 导入 Python 脚本

In lại 作者:行者123 更新时间:2023-11-30 04:16:57 26 4
mua khóa gpt4 Nike

Tôi đang cố gắng sử dụng Python.h 在 C++ 程序中运行 Python 脚本。因为这个 C++ 程序可以安装 (make install) 在 /usr/bin 中,所以它需要能够在它自己的目录中找到 Python 脚本(以防它未安装)或在 PATH 环境变量的目录之一中。

我试过:

PyObject *pName = PyString_FromString(scriptName); // scriptName is "file.py" as a char*
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append(\".\")");
PyObject *pModule = PyImport_Import(name); // not working because absolute path only
//since Python 2.7 ?

PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append(\".\")");
PyObject *pModule = PyImport_ImportModuleEx(scriptName, NULL, NULL, NULL);

但是在这个调用之后两者都给我留下了 pModule == NULL 但是如果我从它自己的目录运行 C++ 模块就可以工作。

非常感谢您的帮助

1 Câu trả lời

"." 仅当您的 C++ python 脚本的根目录时才用作您的 python 脚本的路径是您进程的当前工作目录.

如果您的程序是从其他地方启动的(通过 PATH 或/path/to/a/program)那么找到脚本的唯一可靠方法是使用 chủ yếu TRONG argv[0] 参数。

找到正确的路径后,有两种使用方法:

  1. 将其传递给 sys.path.append
  2. sử dụngchdir(来自unistd.h)切换工作目录,然后您可以将"."传递给 sys.path.append. chdir 会影响整个过程,但优点是您可以直接在 chủ yếu 中执行。

关于c++ - 在 C++ 中从 PATH 导入 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17430462/

26 4 0
Bài viết được đề xuất: java - 从文件夹导入类
Bài viết được đề xuất: Thuật toán C++ để gửi email bằng Outlook
Bài viết được đề xuất: java - 重写 Java 中的类
Bài viết được đề xuất: android - 如何在 Android 手机的第一个屏幕上显示一条消息?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com