首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有nidaqmx的Pyinstaller

带有nidaqmx的Pyinstaller
EN

Stack Overflow用户
提问于 2022-02-22 17:57:15
回答 2查看 405关注 0票数 1

我有一个用python编写的软件,我正在尝试将它打包到一个可执行文件中。其中一个模块有问题,我找不到关于它的任何信息: nidaqmx。

在运行标准的pyinstaller之后,例如。

代码语言:javascript
复制
pyinstaller myprogram.py

构建成功完成,但是在警告文件中它注意到缺少nidaqmx。然后,在运行可执行文件时,我得到以下内容:

代码语言:javascript
复制
File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "nidaqmx\__init__.py", line 11, in <module>
  File "importlib\metadata.py", line 530, in version
  File "importlib\metadata.py", line 503, in distribution
  File "importlib\metadata.py", line 177, in from_name
  importlib.metadata.PackageNotFoundError: nidaqmx

我还注意到,站点包中的nidaqmx文件夹没有被复制。我尝试过的事情:

  • 添加'nidaqmx‘作为隐藏导入(从.spec文件或命令行)。添加与项目无关的其他模块似乎是有效的文件(意思是文件夹被复制了)。
  • 向.spec文件

添加了一个挂钩路径。

不知道从这里往哪里走。谢谢你的建议。

EN

回答 2

Stack Overflow用户

发布于 2022-03-17 10:53:49

我解析了nidaqmx/__init__.py中的几行注释,并设法使可执行文件正确运行。

代码语言:javascript
复制
from nidaqmx.errors import DaqError, DaqWarning, DaqResourceWarning
from nidaqmx.scale import Scale
from nidaqmx.task import Task
from nidaqmx._task_modules.read_functions import CtrFreq, CtrTick, CtrTime

# try:
#     from importlib.metadata import version
# except ImportError:
#     from importlib_metadata import version

# __version__ = version(__name__)

__all__ = ['errors', 'scale', 'stream_readers', 'stream_writers', 'task']
票数 1
EN

Stack Overflow用户

发布于 2022-08-31 15:30:18

如果不想编辑nidaqmx的源代码,可以将--copy-metadata参数添加到PyInstaller命令中,如下所示:

代码语言:javascript
复制
pyinstaller --copy-metadata nidaqmx
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71226142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档