Python couchbase已安装,但仍收到导入错误(Pyinstaller)

Python couchbase已安装,但仍收到导入错误(Pyinstaller),python,python-2.7,couchbase,pyinstaller,Python,Python 2.7,Couchbase,Pyinstaller,我正在尝试使用pyinstaller构建python源代码。一旦构建成功,我将运行二进制文件。运行二进制文件后,我将获得以下ImportError: PyUtils.CouchbaseClient", line 13, in <module> ImportError: No module named couchbase ImportError: No module named _libcouchbase PyUtils.CouchbaseClient”,第13行 ImportEr

我正在尝试使用
pyinstaller
构建python源代码。一旦构建成功,我将运行二进制文件。运行二进制文件后,我将获得以下
ImportError

PyUtils.CouchbaseClient", line 13, in <module>
ImportError: No module named couchbase
ImportError: No module named _libcouchbase
PyUtils.CouchbaseClient”,第13行
ImportError:没有名为couchbase的模块
但是
couchbase
已经安装,我可以运行原始的Python源代码,没有任何导入错误。转换成二进制后,我得到了ImportError


非常感谢您提供的任何帮助。

由于您的程序动态导入couchbase,pyinstaller无法检测到它是必需的,如中所述:

一些Python脚本以PyInstaller无法检测到的方式导入模块:例如,通过对变量数据使用
\uuuu import\uuuu()
函数,或者在运行时操作
sys.path

在此问题上进行了扩展,并提出了处理此场景的一些解决方法:

如果分析认为已找到所有导入,但应用程序因导入错误而失败,则问题在于隐藏导入;也就是说,导入对分析阶段不可见

当代码使用
\uuuu import\uuuu
exec
eval
时,可能会发生隐藏导入。您会收到这些警告(请参阅)

当扩展模块使用Python/C API进行导入时,也会发生隐藏导入。发生这种情况时,分析无法检测到任何内容。不会出现警告,只有在运行时崩溃

要查找这些隐藏导入,请设置
-v
标志(如上)

一旦知道它们是什么,就可以使用
--hidden import=
命令选项,通过编辑spec文件或使用钩子文件(见下文)将所需的模块添加到包中

因此,您需要明确要求pyinstaller在构建过程中包含所需的模块。似乎最简单的方法是使用以下参数:

--hidden import=modulename

命名在代码中不可见的导入Python模块。该模块将被包括在内,就好像它是在
import
语句中命名的一样。此选项可以多次提供

因此,在构建应用程序时,请添加以下参数:

--隐藏导入=couchbase


但是,一旦PyInstaller检测到需要
couchbase
,运行生成的可执行文件将失败,出现
ImportError

PyUtils.CouchbaseClient", line 13, in <module>
ImportError: No module named couchbase
ImportError: No module named _libcouchbase

描述为解决此问题应执行的操作。

在生成过程中是否收到任何警告或错误?模块如何导入以及它位于何处?生成成功,没有任何错误或警告。这是我用于生成代码的命令。命令:pyinstaller-p path1:path2:path3 Test/Main.py coach Bas我是用easy\u install安装的:sudo easy\u install couchbase模块是如何在代码中导入的?可能是动态导入,或者是在
\uuuu init\uuuuuuuuuy.py
文件中完成的?这是一个动态导入,而且我创建了空的init.py文件。我再次尝试了--hidden import=couchbase,但仍然得到了相同的错误:下面是我使用了:pyinstaller-p Automator/AutomationFramework/:PyUtils/:Telco/--hidden import=couchbase Forge/telcoPipeline/pyscripts/main.py除了
--hidden import
参数之外,尝试使用参数
--log level=debug
构建,并检查是否编写了关于导入couc的任何内容hbase。此外,在执行应用程序时,添加.1712调试:分析libcouchbase 1713错误:隐藏导入“libcouchbase”未找到1713信息:分析隐藏导入“\u libcouchbase”1713调试:分析\u libcouchbase 1714错误:隐藏导入“\u libcouchbase”未找到这实际上是一个不同的错误,值得提出自己的问题,我在回答中也链接到了它,它解决了这个问题。尝试了这个答案。但仍然得到了相同的错误。文件“/usr/local/lib/python2.7/dist packages/PyInstaller/loader/pyi_importers.py”,第270行,在load_module exec(字节码,module.u dict_u)文件“/home/bhanu/Test/build/main/out00-PYZ.PYZ/couchbase.exceptions中“,第18行,输入错误:没有名为_libcouchbase的模块