Как вызвать файл python, для которого нужно импортировать пакеты?

Я следую учебнику для вызова кода Python из программы на C ++ из документы по питону.

Все работает просто отлично при попытке вызвать multiply пример. Теперь, если я добавлю строку в исходный код Python, импортирующую библиотеку, скажем openpyxl,

from openpyxl import load_workbook

Я получаю ошибку от python

ImportError: No module named openpyxl

Я думал, если я импортирую системная библиотека, У меня не было бы никаких проблем, но я также получаю ошибку, если я пытаюсь импортировать datetime,

У меня нет ошибки, если я импортирую файл из консоли Python. openpyxl библиотека установлена ​​в моей системе.

Итак, мой вопрос: как импортировать исходный код Python, который должен импортировать пакеты?

РЕДАКТИРОВАТЬ: Хорошо, я забыл упомянуть кое-что, я не был полностью честен с вами, извините.

Пытаясь запустить пример, я столкнулся с проблемой: я не мог заставить Python найти мой multiply.py файл и строка PyImport_Import всегда возвращайся null,

Мое решение состояло в том, чтобы добавить путь, по которому я знал, что мой источник Python был с помощью PySys_SetPath, Проблема в том, что я только что понял, что эта функция не добавляет новый каталог, она просто перезаписывает PYTHONPATH, Так что теперь Python может найти multiply.py, но абсолютно все остальное.

Конечно, я удалил эту строку, но теперь у меня есть другой вопрос, почему python не может найти мой источник, если файл находится в том же каталоге скомпилированной программы C ++?

Я понял, что мой sys.path из моей консоли Python немного отличается от пути, показанного в моем встроенном Python: первый имел в начале списка пустую строку '', Я не эксперт по Python, но когда я добавлю эту строку в мой путь, я могу импортировать multiply.py Похоже, поэтому я не смог импортировать модули, которые были расположены относительно моего исполняемого файла, из-за отсутствия этого пустого пути, но все еще не знаю, что это значит.

Я должен поблагодарить @ paul-evans, которые дали мне идею добавить путь для поиска моих файлов.

1

Решение

Это то, что PYTHONPATH для. Вы можете установить его как переменную окружения, содержащую каталоги модуля списка, или в самом коде что-то вроде:

import sys
sys.path.append("path/to/openpyxl/module")
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]