如何使用运行 Windows .exe 的 Python 脚本链接到 conda 环境中的 .dll?
Posted
技术标签:
【中文标题】如何使用运行 Windows .exe 的 Python 脚本链接到 conda 环境中的 .dll?【英文标题】:How to link to .dlls in conda environment using a Python Script running a Windows .exe? 【发布时间】:2021-02-02 16:24:21 【问题描述】:我正在使用一个脚本来填充具有自定义功能的 Structure-from-Motion 软件 COLMAP。 这个脚本通常是为 linux 分发的,我不得不在 Windows 10 中做一些调整。
脚本通过以下方式调用 COLMAP:
cmd = [
str(colmap_path), 'feature_importer',
'--database_path', str(database_path),
'--image_path', str(image_dir),
'--import_path', str(dummy_dir),
'--ImageReader.single_camera',
str(int(single_camera))]
ret = subprocess.call(cmd)
if ret != 0:
logging.warning('Problem with feature_importer, exiting.')
exit(ret)
对于colmap_path
,我链接到 colmap.exe 并执行它,但缺少存储在单独文件夹中的 .dll。程序结构如下:
我的尝试是将 .dll 文件复制到 /anaconda3/envs/my_env 但随后出现错误:
qt.qpa.plugin:在“”中找不到 Qt 平台插件“windows” 此应用程序无法启动,因为没有 Qt 平台插件可以 被初始化。重新安装应用程序可能会解决此问题。
那么是否可以直接链接到ret = subprocess.call(cmd)
中的.dll和平台?
【问题讨论】:
【参考方案1】:我在另一个 website 上找到了解决方案。我不得不将包含 qwindows.dll 的平台文件夹复制到 bin 文件夹中。这可作为许多不同应用程序的解决方案,可通过 .exe 执行; subprocess.call
然后能够找到 qt 平台插件并且脚本运行没有错误。
【讨论】:
以上是关于如何使用运行 Windows .exe 的 Python 脚本链接到 conda 环境中的 .dll?的主要内容,如果未能解决你的问题,请参考以下文章
如何调试通过 Windows 调度程序运行的 exe? [复制]
如何使用运行 Windows .exe 的 Python 脚本链接到 conda 环境中的 .dll?