【问题标题】:pip install from a github repo - how to build C-extensions with Cython during egg installpip install from a github repo - 如何在 egg install 期间使用 Cython 构建 C 扩展
【发布时间】:2011-08-25 21:51:37
【问题描述】:

我可以使用以下命令成功安装the DMSL package

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

我该如何解决这个问题?


编辑1:

我已经分叉了 repo 并更正了 MANIFEST.in 所以在我的 repo 中它有

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

它会找到 *.html 和 *.dmsl,但问题是没有 *.c 文件,我需要使用 Cython 创建这些文件。我已经安装了这个包,但是作为一个 python 新手,我需要指导下一步。我应该怎么做才能生成 C 文件?我需要向MANIFEST.insetup.py 添加其他内容吗?


编辑2:

我在 freenode#python 上得到了一些帮助。伙计们建议使用python setup.py build_ext 生成C 文件并将它们添加到repo。避免这种情况会很好。有没有办法使用pip install 自动运行 build_ext 命令?


仅供参考:对于此类问题,值得访问 freenode#pip。在那里你可能有幸找到jezdez ;)

【问题讨论】:

    标签: python git pip cython egg


    【解决方案1】:

    安装 Pyrex 后,安装对我有用。您可能希望将 Cython 和 Pyrex 添加到 setup() 调用的 installed_requires 参数中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 2021-09-29
      • 2015-08-17
      • 2015-12-30
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多