使用带有C扩展名的Setuptools作为packag的一部分

2024-09-21 01:11:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个C扩展来访问来自专有库的相机的错误消息。结构是

setup.py
dicamsdk\
|---__init__.py
|---control.py
|---pcoError.c

使用setup.py

^{pr2}$

并且control.py打算使用

from . import pcoError

当我试图构建(或安装)这个包时,我总是收到错误ImportError: cannot import name 'pcoError'。在

{{{cd5}似乎只能通过

在我的setup.py中是否有一个解决方案可以首先编译我的扩展以实现一个简单的安装?在


Tags: namefrompyimport消息init错误setup
2条回答

{{cd1>在导入开始时是问题。第2行中的导入(from dicamsdk.control import __version__)强制对模块进行代码检查。在

删除后,包的安装或生成将正确运行。在

基于您自己的答案,一个更合适的解决方案:

您的版本大概是针对整个项目的,而不仅仅是控制模块。在__init__.py中定义__version__是标准的。在这种情况下,setup.py中的导入看起来像from dicamsdk import __version__。这不会导致冲突,除非您做一些愚蠢的事情,比如从包根自动导入所有模块。在

相关问题 更多 >

    热门问题