我有一个包含.pyx和它们的等效.cpp的模块。在
当我运行python setup.py develop
时,只有.cpp
文件被转换为.so
。但是,由于只有.pyx
文件才足够可读,因此我希望将它们转换为.so
。这个模块很大,因此单独编译.pyx
文件可能会非常繁忙。在
理想情况下,我希望python setup.py develop
将.pyx
文件直接转换为.so
。在
这是安装文件
#! /usr/bin/env python
#
# Copyright (C) 2012 Mathieu Blondel
import sys
import os
DISTNAME = 'lightning'
DESCRIPTION = "Large-scale sparse linear classification, " + \
"regression and ranking in Python"
LONG_DESCRIPTION = open('README.rst').read()
MAINTAINER = 'Mathieu Blondel'
MAINTAINER_EMAIL = 'mathieu@mblondel.org'
URL = 'https://github.com/mblondel/lightning'
LICENSE = 'new BSD'
DOWNLOAD_URL = 'https://github.com/mblondel/lightning'
VERSION = '0.1-git'
import setuptools # we are using a setuptools namespace
from numpy.distutils.core import setup
def configuration(parent_package='', top_path=None):
if os.path.exists('MANIFEST'):
os.remove('MANIFEST')
from numpy.distutils.misc_util import Configuration
config = Configuration(None, parent_package, top_path)
config.add_subpackage('lightning')
return config
if __name__ == "__main__":
old_path = os.getcwd()
local_path = os.path.dirname(os.path.abspath(sys.argv[0]))
os.chdir(local_path)
sys.path.insert(0, local_path)
setup(configuration=configuration,
name=DISTNAME,
maintainer=MAINTAINER,
include_package_data=True,
scripts=["bin/lightning_train",
"bin/lightning_predict"],
maintainer_email=MAINTAINER_EMAIL,
description=DESCRIPTION,
license=LICENSE,
url=URL,
version=VERSION,
download_url=DOWNLOAD_URL,
long_description=LONG_DESCRIPTION,
zip_safe=False, # the package can run out of an .egg file
classifiers=[
'Intended Audience :: Science/Research',
'Intended Audience :: Developers',
'License :: OSI Approved',
'Programming Language :: C',
'Programming Language :: Python',
'Topic :: Software Development',
'Topic :: Scientific/Engineering',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
'Operating System :: Unix',
'Operating System :: MacOS'
]
)
这是Make文件
^{pr2}$在编译过程中,我得到了这个输出
compile options: '-I/home/is/anaconda/lib/python2.7/site-packages/numpy/core/include -I/home/is/lightning/lightning/impl/randomkit -I/home/is/anaconda/lib/python2.7/site-packages/numpy/core/include -I/home/is/anaconda/include/python2.7 -c'
c++: svrg_fast.cpp
我宁愿让安装程序编译.c
代码,因为我可以轻松地将.pyx
转换为{
提前谢谢!在
只是找到了一个办法。在
假设我正在对
file.pyx
进行更改,我可以通过运行将其编译为.cpp
cython cplus file.pyx
然后,我只需运行
sudo python setup.py develop
希望这有帮助!在
相关问题 更多 >
编程相关推荐