2013-12-08 3 views
1

Я постоянно работаю над модулем Python, который содержит расширения C++, завернутые в Cython. В настоящее время setup.py обрабатывает здание модуля расширения и называется python3 setup.py --build_ext --inplace.Установка разрабатываемого модуля Python/Cython (расширение)

from distutils.core import setup 
from distutils.extension import Extension 
from Cython.Build import cythonize 
from Cython.Distutils import build_ext 


srcDir = "../src" 
src = ["_MyProject.pyx"] # list of source files 

print("source files: {0}".format(src)) 

modules = [Extension("_MyProject", 
        src, 
        language = "c++", 
        extra_compile_args=["-fopenmp", "-std=c++11", "-O3", "-DNOGTEST"], 
        extra_link_args=["-fopenmp", "-std=c++11"], 
        libraries=["MyProjectLib", "log4cxx"], 
        library_dirs=["../"])] 

for e in modules: 
    e.cython_directives = {"embedsignature" : True} 

setup(name="_MyProject", 
    cmdclass={"build_ext": build_ext}, 
    ext_modules=modules) 

На верхней части модуля Cython _MyProject, есть чистый модуль MyProject Python, который импортирует материал из _MyProject.

В настоящее время я использую и тестирую модуль на cd, находясь в его каталоге и импортируя его оттуда. Как мне изменить мой setup.py, чтобы я мог установить MyProject в пакеты своего сайта и всегда ли обновлять пакет?

+0

Если я правильно понял вопрос, я бы это сделал, используя virtualenv и python setup.py develop - см. Http://opensourcehacker.com/2012/09/16/recommended-way-for-sudo-free-installation-of -python-software-with-virtualenv/и http://stackoverflow.com/questions/19048732/python-setup-py-develop-vs-install –

ответ

1

Добавьте аргумент py_modules = ["MyProject.py",] к вашей функции setup().

+0

После этого, как мне нужно вызвать 'setup.py' для достичь желаемой установки? – clstaudt

Смежные вопросы