Заседнал съм в опитите си да стартирам и стартирам модул C на Python. Инсталирам 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-пакети. Не бяха четливи, не знам защо. Току-що пуснах файл sudo chmod 777 и сега той работи!.
from deltaLDA import deltaLDA
предполага, че има модул/клас/метод, наречен deltaLDA в рамките на модула deltaLDA. Проверете документацията на модула и вижте дали случаят е такъв. Също така от интерпретатор на Python можете да направитеdir(deltaLDA)
, за да видите какво всичко дефинира. - person arunkumar   schedule 13.08.2011