我是Python编码的新手,刚完成我的第一个python脚本 我正在尝试发布程序,以便可以在其他设备上安装。
但是当我使用pyinstaller将其从.py
转换为.exe
并尝试运行程序时,它给了我错误:
严重错误:无法执行股息
我用来转换的代码:
pyinstaller -w file_name.py
pyinstaller -F file_name.py
pyinstaller -i "c:\\icon_file path" file_name.py
我只是想念一步,还是可以尝试解决此问题? 我通常在Visual Studio上进行编码,并且在我测试运行时一切正常。
我的.spec
文件:
block_cipher = None
a = Analysis(['file_name.py'],
pathex=['C:\\Users\\MainUser\\Desktop\\Publishing'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
a.binaries = a.binaries +
[('libsha1.dll','/home/iot/lib/libsha1.dll','BINARY')]
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='file_name',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )
```
答案 0 :(得分:0)
我猜您只有一个脚本,所以如果您使用:
Pyinstaller --onefile yourScript.py
将yourScript.py
替换为CMD /终端中的python文件名,您应该不会有任何问题。
如果您缺少二进制文件,这将有所帮助。例如pyinstaller缺少货币转换器模块,所以我找到了它,并得到了zip文件,然后在CMD中运行了该文件:
Pyinstaller --add-binary "C:\Users\myName\Downloads\eurofxref-hist.zip";currency_converter --onefile myScript.py
其中myScript.py是我的Python脚本,链接指向包含二进制zip文件的文件夹。
答案 1 :(得分:0)
通常,这是由于打包时缺少文件所致。
使用PyInstaller时,您可以像这样使用它:
python -m PyInstaller .\yourFile.py
然后,在此文件夹下生成一个yourFile.spec
文件。
您应编辑此文件,将所有项目文件添加到datas
,
a = Analysis(['yourFile.py'],
pathex=['D:\\projectPath\\project'],
binaries=[],
datas=[('D:\\projectPath\\project\\*.py', '.'),
('D:\\projectPath\\project\\UI\\*.ui', 'UI'),
('D:\\projectPath\\project\\other\\*.py', 'other'),
],
...
)
这里是一个模拟项目,其中包含UI
和other
文件夹。就像元组('full path', 'folder name')
。
如果在Windows上具有* .dll或在Linux上具有* .so,则必须写入binaries
:
a.binaries = a.binaries + [('libsha1.so','/home/iot/lib/libsha1.so','BINARY')]