我正在使用PySide GUI框架开发一个应用程序,即64位Windows 7/Windows 8上的Python 2.7(PySide和Python都是32位的)
我制作了一个小部件,它使用Phonon软件包进行视频播放器。起初我试着在Windows7上运行这个程序——成功了。但是,由于安装了所有相同的软件包,我无法在Windows 8上运行它。
当我打开视频播放器或尝试切换视频时,我收到的错误是:
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon backend plugin could not be loaded
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon backend plugin could not be loaded
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon backend plugin could not be loaded
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon backend plugin could not be loaded
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon backend plugin could not be loaded
WARNING: Phonon::createPath: Cannot connect MediaObject ( no objectName ) to AudioOutput ( no objectName ).
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon backend plugin could not be loaded
WARNING: Phonon::createPath: Cannot connect MediaObject ( no objectName ) to VideoWidget ( no objectName ).
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon backend plugin could not be loaded
PySide插件目录拥有所有必要的插件。目录C:\Python27\Lib\site-packages\PySide\plugins\phono_backend内容为:
- phonon_ds9d4.dll
- phonon_ds94.dll
我尝试使用以下选项从setup.py安装软件包:
data_files=[
('phonon_backend', [
'C:Python27Libsite-packagesPySidepluginsphonon_backendphonon_ds94.dll'
])
]
来源如下:https://github.com/dpitkevics/stream-ies/blob/master/widgets/video_player.py#L17
现在我已经走到了死胡同。我不知道在哪里可以进一步搜索。最奇怪的是,在另一台电脑上,同样的软件包却像魅力一样发挥作用
任何帮助都将不胜感激。
我遇到了同样的问题,尽管我发现PySide\plugins\phono_backend中同时有phonon_ds9d4.dll和phonon_ds34.dll,但我也遇到了相同的警告。幸亏https://srinikom.github.io/pyside-docs/PySide/QtCore/QCoreApplication.html?highlight=librarypaths#PySide.QtCore.PySide.QtCore.QCoreApplication.libraryPaths,我发现我的路径指向PyQt,即C/Python34/Lib/site packages/PyQt5/plugins,而不是PySide。通过删除PyQt5(我根本没有使用它),它解决了我的问题,还有更多。。。
我的入口点看起来像这个
if __name__ == '__main__':
app = QApplication(sys.argv)
for lppath in app.libraryPaths():
print(lppath)
tologin = LoginWidget()
ret = app.exec_()
sys.exit(ret)
for循环返回PySide搜索插件的路径。