Я застрял, пытаясь запустить и запустить модуль Python C. Я устанавливаю модуль deltaLDA из здесь. Я следовал инструкциям, указанным в файле REAMDE. Как обычно, я написал:
sudo python setup.py install
Все прошло, как и ожидалось, я думаю, я получаю этот вывод:
running build
running build_ext
building 'deltaLDA' extension
C compiler: gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC
creating build
creating build/temp.linux-i686-2.7
compile options: '-I/media/Hub/DropBox/Dropbox/Betazeta/Software/LDA/deltaLDA -I/usr/lib/pymodules/python2.7/numpy/core/include -I/usr/include/python2.7 -c'
extra options: '-O3 -Wall'
gcc: deltaLDA.c
In file included from /usr/include/python2.7/Python.h:8:0,
from deltaLDA.c:22:
/usr/include/python2.7/pyconfig.h:1155:0: warning: "_POSIX_C_SOURCE" redefined
/usr/include/features.h:214:0: note: this is the location of the previous definition
deltaLDA.c:686:1: warning: function declaration isn’t a prototype
creating build/lib.linux-i686-2.7
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions build/temp.linux-i686-2.7/deltaLDA.o -o build/lib.linux-i686-2.7/deltaLDA.so
running install_lib
copying build/lib.linux-i686-2.7/deltaLDA.so -> /usr/local/lib/python2.7/dist-packages
running install_egg_info
Removing /usr/local/lib/python2.7/dist-packages/deltaLDA-0.1.1.egg-info
Writing /usr/local/lib/python2.7/dist-packages/deltaLDA-0.1.1.egg-info
Но затем, когда я пытаюсь импортировать модуль deltaLDA, я получаю следующую ошибку:
>>> from deltaLDA import deltaLDA
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named deltaLDA
Если я проверю наличие установленных модулей с помощью help('modules') или команды pip freeze, я смогу найти deltaLDA в обоих списках, но не смогу импортировать его. Пожалуйста, любая помощь будет оценена по достоинству.
Спасибо!
Обновления: я также проверил путь sys.path и '/usr/local/lib/python2.7/dist-packages'
его наличие. Если я попытаюсь импортировать * из deltaLDA, например from deltaLDA import *
, я получу ту же ошибку. В интерпретаторе также попытался dir(deltaLDA)
получить ту же ошибку «Нет имени модуля». Может проблема с модулем deltaLDA? Кто-нибудь может попробовать установить?
Исправлено
Я проверил разрешения файлов .so и egg-info на dist-packages. Они не читались, не знаю почему. Я только что запустил файл sudo chmod 777, и теперь он работает!
from deltaLDA import deltaLDA
подразумевает, что в модуле deltaLDA есть модуль/класс/метод, называемый deltaLDA. Проверьте документацию модуля и посмотрите, так ли это. Также из интерпретатора Python вы можете сделатьdir(deltaLDA)
, чтобы увидеть, что все это определяет. - person arunkumar   schedule 13.08.2011