pip install из репозитория github - как создавать C-расширения с Cython во время инсталляции egg - PullRequest
0 голосов
/ 25 августа 2011

Я могу успешно установить пакет DMSL , используя следующие команды

git clone git://github.com/dasacc22/dmsl.git
cd dmsl
sudo python setup.py install

но когда я пытаюсь установить с pip

pip install -e git+git://github.com/dasacc22/dmsl.git#egg=dmsl

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

Obtaining dmsl from git+git://github.com/dasacc22/dmsl.git#egg=dmsl
  Updating /Users/andrei/.pythonbrew/venvs/Python-2.7.2/test/src/dmsl clone
  Running setup.py egg_info for package dmsl

    warning: no files found matching '*.html' under directory 'daml'
    warning: no files found matching '*.daml' under directory 'daml'
    warning: no files found matching '*.c' under directory 'daml'
Installing collected packages: dmsl
  Running setup.py develop for dmsl

    warning: no files found matching '*.html' under directory 'daml'
    warning: no files found matching '*.daml' under directory 'daml'
    warning: no files found matching '*.c' under directory 'daml'
    building 'dmsl.cdoc' extension
    gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/andrei/.pythonbrew/pythons/Python-2.7.2/include/python2.7 -c dmsl/cdoc.c -o build/temp.macosx-10.7-x86_64-2.7/dmsl/cdoc.o
    i686-apple-darwin11-llvm-gcc-4.2: dmsl/cdoc.c: No such file or directory
    i686-apple-darwin11-llvm-gcc-4.2: no input files
    error: command 'gcc' failed with exit status 1
    Complete output from command /Users/andrei/.pythonbrew/venvs/Python-2.7.2/test/bin/python -c "import setuptools; __file__='/Users/andrei/.pythonbrew/venvs/Python-2.7.2/test/src/dmsl/setup.py'; exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" develop --no-deps:
    running develop

running egg_info

writing dmsl.egg-info/PKG-INFO
writing top-level names to dmsl.egg-info/top_level.txt
writing dependency_links to dmsl.egg-info/dependency_links.txt
writing dmsl.egg-info/PKG-INFO
writing top-level names to dmsl.egg-info/top_level.txt
writing dependency_links to dmsl.egg-info/dependency_links.txt

warning: manifest_maker: standard file '-c' not found

reading manifest file 'dmsl.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'

warning: no files found matching '*.html' under directory 'daml'
warning: no files found matching '*.daml' under directory 'daml'
warning: no files found matching '*.c' under directory 'daml'

writing manifest file 'dmsl.egg-info/SOURCES.txt'

running build_ext

building 'dmsl.cdoc' extension

gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/andrei/.pythonbrew/pythons/Python-2.7.2/include/python2.7 -c dmsl/cdoc.c -o build/temp.macosx-10.7-x86_64-2.7/dmsl/cdoc.o

i686-apple-darwin11-llvm-gcc-4.2: dmsl/cdoc.c: No such file or directory
i686-apple-darwin11-llvm-gcc-4.2: no input files

error: command 'gcc' failed with exit status 1

----------------------------------------
Command /Users/andrei/.pythonbrew/venvs/Python-2.7.2/test/bin/python -c "import setuptools; __file__='/Users/andrei/.pythonbrew/venvs/Python-2.7.2/test/src/dmsl/setup.py'; exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" develop --no-deps failed with error code 1
Storing complete log in /Users/andrei/.pip/pip.log

Как я могу это исправить?


EDIT1:

Я разветвил репо и исправил MANIFEST.in, поэтому в моем репо он имеет

recursive-include dmsl *.html *.dmsl *.c

и находит * .html и * .dmsl, но проблема в том, что нет файлов * .c, которые мне нужно создать с помощью Cython. У меня установлен пакет, но, будучи новичком на python, мне нужно ориентироваться на следующий шаг. Что я должен сделать, чтобы произвести C-файлы? Нужно ли добавить что-то еще к MANIFEST.in или к setup.py?


EDIT2:

Мне нужна помощь по freenode # python. Ребята предлагают выпустить C-файлы с python setup.py build_ext и добавить их в репо. Было бы неплохо избежать этого. Есть ли способ автоматически запустить команду build_ext с pip install?


Просто для информации: для таких вопросов стоит посетить freenode # pip. Там вы можете найти jezdez ;)

1 Ответ

3 голосов
/ 25 августа 2011

После установки Pyrex установка у меня сработала.Возможно, вы захотите добавить Cython и Pyrex в параметр instal_requires вызова setup ().

...