Я хотел бы загрузить один из scipy-модулей (scipy.linalg) внутри функции, которая экспортируется из расширения python, написанного на C++, чтобы затем вызвать из него функцию. Было бы лучше, если бы пользователю не нужно было заранее загружать модуль в свою программу на Python (поэтому PyImport_AddModule
не является решением). Код с использованием высокого уровня PyImport_Import
вот так
pckg_name = PyString_FromString("scipy.linalg");
pckg = PyImport_Import(pckg_name);`
работает, как рекомендовано здесь, за исключением того, что в Python 3.6 он выдает предупреждающее сообщение перед работой.
C:\Program Files\Python36\lib\importlib\_bootstrap.py:205:
ImportWarning: can't resolve package from __spec__ or __package__,
falling back on __name__ and __path__
return f(*args, **kwds)
Что означает сообщение? Его присутствие говорит о том, что я делаю это неправильно. Как правильно это сделать?
python -W error
, похоже, не влияет на это предупреждение, и мне не кажется, что я могу поймать/подавить это с помощью фильтра. - person uayebforever   schedule 17.02.2018