smi*_*y84 5 c python packaging setuptools python-extensions
我编写了一个 C 扩展来从专有库访问相机的错误消息。结构是
setup.py
dicamsdk\
|---__init__.py
|---control.py
|---pcoError.c
Run Code Online (Sandbox Code Playgroud)
和setup.py
from setuptools import setup, Extension, find_packages
from dicamsdk.control import __version__
pcoErrorModule = Extension("dicamsdk.pcoError",
sources=["dicamsdk/pcoError.c"],
include_dirs=['C:\Program Files (x86)'
'\Digital Camera Toolbox'
'\Sensicam SDK\include'],
define_macros=[("PCO_ERRT_H_CREATE_OBJECT", None)],
)
setup(
name="pydicamsdk",
platforms=["win-amd64", 'win32'],
license="GNU GPLv3",
ext_modules=[pcoErrorModule],
packages=find_packages(),
version=__version__
)
Run Code Online (Sandbox Code Playgroud)
并control.py打算导入已编译的 C 扩展
from . import pcoError
Run Code Online (Sandbox Code Playgroud)
当我尝试构建(或安装)软件包时,我总是收到错误ImportError: cannot import name 'pcoError'。
它似乎唯一有效的方法是注释掉导入control.py并使用setup.py build_ext --inplace. 只需使用编译后的内容,我就可以构建/安装我的库。
我是否有一个解决方案可以setup.py首先编译我的扩展以实现简单的安装?
问题出在 . 开头的导入上setup.py。第 2 行 ( ) 中的导入from dicamsdk.control import __version__强制对模块进行代码检查。
删除后,软件包的安装或构建可以正确运行。
| 归档时间: |
|
| 查看次数: |
2800 次 |
| 最近记录: |