Jco*_*ine 5 python docx pyinstaller
我在使用 PyInstaller 时遇到了包含 python 包的问题,特别是docxcompose. 这是一个需要在 PyInstaller 目录中导入其 site-package 文件夹的包。我已经用 pip 安装了 docxcompose,它位于我的 site-packages 库中,文件夹标记为docxcompose. import docxcompose明确列在我在 PyInstaller 中引用的 python 文件中。
我正在使用规范文件和 --onedir 方法进行调试,因为我想最终使用 --onefile 进行安装。到目前为止,我已将这些添加到规范文件的分析部分,但没有成功:
hiddenimports=['docxcompose']
pathex=['C:\\Users\\myusername\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages']
Run Code Online (Sandbox Code Playgroud)
docxcompose 没有添加到我的 PyInstall 中是否有原因?有没有办法可以在安装过程中强制复制该文件夹?
要“手动”添加docxcompose文件夹而不是依赖 PyInstaller 搜索,我发现您必须在规范文件的分析部分中的“datas”中添加 docxcompose 的站点包文件夹目标。请参阅文本/规格文件:
样品规格
# -*- mode: python ; coding: utf-8 -*-
import sys
from os import path
site_packages = next(p for p in sys.path if 'site-packages' in p)
block_cipher = None
a = Analysis(['ape_proposal_generator.py'],
pathex=['C:\\Users\\myusername\\AppData\\Local\\Programs\\Python\\Python37\\Lib', 'C:\\MyPythonFileDest'],
binaries=[],
datas=[(path.join(site_packages,"docxcompose"),
"docxcompose")],
hiddenimports=['docxcompose'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='mypythonfilename',
debug=True,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='mypythonfilename')
Run Code Online (Sandbox Code Playgroud)
小智 5
或者,您可以添加--collect-data "docxcompose"到 pyinstaller 的命令行参数中。
pyinstaller --collect-data "docxcompose"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8114 次 |
| 最近记录: |