相关疑难解决方法(0)

如何在python包中包含.pyx文件

我在我的包pyirt中使用了cython ,但是当我将它发布到pypi时,.pyx文件不包含在tar.gz中

我认为它必须与安装文件有关.但是,我找不到解决这个问题的方法.

python cython

7
推荐指数
1
解决办法
903
查看次数

将numpy.get_include()参数添加到setuptools而不预先安装numpy

我目前正在开发一个使用cython和的python包,numpy并且我希望使用pip install干净的python安装中的命令来安装包.应自动安装所有依赖项.我正在使用setuptools以下内容setup.py:

import setuptools

my_c_lib_ext = setuptools.Extension(
    name="my_c_lib",
    sources=["my_c_lib/some_file.pyx"]
)

setuptools.setup(
    name="my_lib",
    version="0.0.1",
    author="Me",
    author_email="me@myself.com",
    description="Some python library",
    packages=["my_lib"],
    ext_modules=[my_c_lib_ext],
    setup_requires=["cython >= 0.29"],
    install_requires=["numpy >= 1.15"],
    classifiers=[
        "Programming Language :: Python :: 3",
        "Operating System :: OS Independent"
    ]
)
Run Code Online (Sandbox Code Playgroud)

到目前为止,这一点很有效.该pip install命令下载cython了该构建,并能够构建我的包并与其一起安装numpy.

现在我想提高cython代码的性能,这会导致我的代码发生一些变化setup.py.我需要添加include_dirs=[numpy.get_include()]调用setuptools.Extension(...)setuptools.setup(...)哪些意味着我还需要import numpy.(请参阅http://docs.cython.org/en/latest/src/tutorial/numpy.html让distutils在正确的位置查找numpy头文件.)

这是不好的.现在用户无法pip install从干净的环境中调用,因为 …

numpy setuptools cython python-3.x

7
推荐指数
1
解决办法
497
查看次数

python setuptools:如何安装带有 cython 子模块的软件包?

我有一个名为pytools的 python 包。它包含一个基于 cython 的子模块nms

当我用 安装根包 pytools 时sudo python -H setup.py,根包似乎安装正确。

但是安装没有复制编译nms.so/usr/local/lib/python2.7/dist-packages/pytools/nms/.

而当我在 ipython 中导入 pytools 时,遇到了一个错误:

导入错误:无法导入名称 nms

如果我手动复制pytools/nms/nms.so/usr/local/lib/python2.7/dist-packages/pytools/nms/,问题就解决了。

这是我setup.py的根包:

import os
import numpy
from distutils.core import setup, Extension
from Cython.Build import cythonize

exec(open('pytools/version.py').read())
exts = [Extension(name='nms',
                  sources=["_nms.pyx", "nms.c"],
                  include_dirs=[numpy.get_include()])
        ]
setup(name='pytools',
  version=__version__,
  description='python tools',
  url='http://kaiz.xyz/pytools',
  author_email='zhaok1206@gmail.com',
  license='MIT',
  packages=['pytools', 'pytools.nms'],
  #packages=['pytools'],
  zip_safe=False
)
Run Code Online (Sandbox Code Playgroud)

setup.py子包nms

from distutils.core import setup, …
Run Code Online (Sandbox Code Playgroud)

python setuptools cython

3
推荐指数
1
解决办法
2220
查看次数

标签 统计

cython ×3

python ×2

setuptools ×2

numpy ×1

python-3.x ×1