私はこれまでのところ、私はこのシンプルな構造だ、pyInstallerの持つダイナミック/非表示の輸入をロードする方法を把握しようとしている:すべての動的PythonモジュールをPyInstallerの仕様に追加するには?
まず、私はd:\Sources\personal\python\framework
そのパッケージが私のpythonのプロジェクトの多くで使用され、特に、それは私が
Main project
├───data <- Pure static data
├───plugins <- Dynamic modules which uses framework's modules
├───resources <- Static data+embedded (generated by pyqt), used by plugins
│ ├───css
│ ├───images
| resources.py
| resources.qrc
main.py <- Uses framework's modules to load plugins dynamically
マイspecファイルをパッケージ化する単純なプロジェクトの下にこのようになりますで使用しています
- :
問題は、私が分析(...、hiddenimports = []、...)さんhiddenimportsリストに隠された輸入品を追加しようとすると、私はこれまでのところ、これを試してみた来ます
:hiddenimports=['d:\\sources\\personal\\python\\pyqt\\plugins']
hiddenimports=['d:\\sources\\personal\\python\\pyqt\\plugins\\*']
hiddenimports=['plugins']
はまた、絶対パスを持つなど、個々のファイルを一覧表示しようとしましたまた
hiddenimports=[
'd:\\sources\\personal\\python\\pyqt\\pyshaders\\plugins\\api.py',
'd:\\sources\\personal\\python\\pyqt\\pyshaders\\plugins\\config.py',
'd:\\sources\\personal\\python\\pyqt\\pyshaders\\plugins\\plugins_actions.py',
'd:\\sources\\personal\\python\\pyqt\\pyshaders\\plugins\\plugins_dialogs.py',
'd:\\sources\\personal\\python\\pyqt\\pyshaders\\plugins\\plugins_docks.py',
'd:\\sources\\personal\\python\\pyqt\\pyshaders\\plugins\\plugins_post_init.py',
'd:\\sources\\personal\\python\\pyqt\\pyshaders\\plugins\\plugins_toolbar.py'
]
とは
hiddenimports=[
'plugins.api',
'plugins.config',
'plugins.plugins_actions',
'plugins.plugins_dialogs',
'plugins.plugins_docks',
'plugins.plugins_post_init',
'plugins.plugins_toolbar'
]
はまた、これらの試みの
hiddenimports=collect_submodules('plugins')
なしに働いていないcollect_submodulesとフォルダのプラグインのISN」をしようとしたモジュールパッケージとして(プラグインフォルダ内__init__.py
生活を)それらをロードしようとしましたpyinstallerがこれらの隠しプラグインによって使用されるインポートを分析して、依存関係を再帰的に分析して* .pycファイルをコピーすると思います)...だから、私はどのようにして私は広告することができますd pyinstallerの仕様に動的にロードされている適切な "隠された"モジュール。
['TOC']を使って[' 'pure''(https://pythonhosted.org/PyInstaller/spec-files.html#spec-file-operation)依存関係のファイルを追加することができます(https: //pythonhosted.org/PyInstaller/advanced-topics.html#toc-class-table-of-contents)。 – Repiklis
おそらくこの(https://github.com/pyinstaller/pyinstaller/issues/2009)の問題に当たっていますか? –
PyInstallerフック(https://pyinstaller.readthedocs.io/en/stable/hooks.html)を使ってみましたか?それらはその目的のために設計されています。 – void