Я постоянно работаю над модулем 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
в пакеты своего сайта и всегда ли обновлять пакет?
Если я правильно понял вопрос, я бы это сделал, используя 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 –