Python Windows-Pyinstaller错误“;无法执行脚本”;当应用程序点击时

Python Windows-Pyinstaller错误“;无法执行脚本”;当应用程序点击时,python,python-3.x,python-2.7,exe,pyinstaller,Python,Python 3.x,Python 2.7,Exe,Pyinstaller,我是Python编码新手,刚刚完成了我的第一个Python脚本 我正在尝试发布我的程序,以便可以在另一台设备上安装 但是,当我使用pyinstaller将其从.py转换为.exe,并尝试运行我的程序时,它会显示错误: 致命错误:无法执行scrip 用于转换的代码: pyinstaller -w file_name.py pyinstaller -F file_name.py pyinstaller -i "c:\\icon_file path" file_name.py 我只是缺少了一个步骤

我是Python编码新手,刚刚完成了我的第一个Python脚本 我正在尝试发布我的程序,以便可以在另一台设备上安装

但是,当我使用pyinstaller将其从
.py
转换为
.exe
,并尝试运行我的程序时,它会显示错误:

致命错误:无法执行scrip

用于转换的代码:

pyinstaller -w file_name.py
pyinstaller -F file_name.py
pyinstaller -i "c:\\icon_file path" file_name.py

我只是缺少了一个步骤,还是我可以尝试解决这个问题? 我通常在VisualStudio上编写代码,当我测试运行时,一切正常

我的
.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 )
```

我猜您只有一个脚本,因此如果您使用:

Pyinstaller --onefile yourScript.py
在CMD/Terminal中将
yourScript.py
替换为python文件名,应该不会有任何问题

如果缺少二进制文件,这应该会有所帮助。例如,pyinstaller缺少货币转换器模块,因此我找到了它,得到了zip文件,然后在CMD中运行此命令:

Pyinstaller --add-binary "C:\Users\myName\Downloads\eurofxref-hist.zip";currency_converter --onefile myScript.py

其中myScript.py是我的Python脚本,链接到包含二进制zip文件的文件夹。

通常,这是因为打包时缺少文件

当您使用PyInstaller时,您可以这样使用它:

python-m PyInstaller.\yourFile.py
然后,在此文件夹下生成一个
yourFile.spec
文件

您应该编辑此文件,将所有项目文件添加到
数据中

a=Analysis(['yourFile.py'],
pathex=['D:\\projectPath\\project'],
二进制文件=[],
数据=[('D:\\projectPath\\project\\*.py','.'),
('D:\\projectPath\\project\\UI\\*.UI','UI'),
('D:\\projectPath\\project\\other\\*.py','other'),
],
...
)
这里模拟了它,一个包含
UI
其他
文件夹的项目。它就像一个元组,
('full path','folder name')

如果Windows上有*.dll或Linux上有*.so,则必须将其写入
二进制文件

a.binaries=a.binaries+[('libsha1.so','/home/iot/lib/libsha1.so','BINARY')]

你能分享你为pyinstaller使用的代码吗?pyinstaller-w My_File_Name.py;pyinstaller-F My_File_Name.py;pyinstaller-i“我的图标图像路径”我的文件名。py这是否回答了您的问题?这可能是一个愚蠢的问题,但我应该输入的路径“'D:\\projectPath\\project”“”是我的文件发布和生成.exe文件的地方,还是我最初保存它和我使用的所有文件的地方?我已在主目录中添加了我的
.spec
文件question@TaniaRheeder也许我没说清楚,你需要运行
python-m PyInstaller
两次,第一次我们这么做了,第二次你应该运行
python-m PyInstaller-yourFile.spec
@TaniaRheeder`'D:\\projectPath\\project``是你的项目根路径,*.exe将在
/dist/startFileName/*.exe中生成,我应该用setup.py文件运行它吗?它只在
命令提示符下运行了2秒钟,什么也没发生。你不应该这样做。在桌面上创建一个新文件夹,将脚本放入其中,然后打开该文件夹中的CMD,粘贴我与脚本名称链接的代码。它应该能工作?所以我的CMD给了我一个新的错误。我的数据存储在mySql中。错误:没有名为mysql.connector的模块,但在Visual Studio中测试时运行良好。我知道了,我是在Handh之前安装的。听起来您没有支持的二进制文件。您需要找到mysql.connector的二进制zip文件。我编辑了我的回复,以帮助您在itI just pip Install MySQL connector运行时使用代码,谢谢!