我正在尝试使用PyInstaller制作exe文件,但是无法这样做。该文件已构建并存放在dist文件夹中,但是,当我尝试运行该文件时,会弹出错误“无法执行脚本{name}”。
这是我正在使用的.spec文件:
public ActionResult Create(int? Id)
{
if(Id == null)
{
return View();
}
else
{
var bookData = _context.Books
.Where(b => b.ID == Id)
.FirstOrDefault();
return View(bookData);
}
}
这是控制台的输出:
可能是什么问题?
答案 0 :(得分:0)
所以您正在使用Kivy,它会记录一些错误:
picamera - ImportError: No module named picamera
File "c:\python27\lib\site-packages\kivy\core\__init__.py", line 63, in core_select_lib
fromlist=[modulename], level=0)
File "c:\python27\lib\site-packages\kivy\core\camera\camera_picamera.py", line 18, in <module>
from picamera import PiCamera
gi - ImportError: No module named gi.repository
File "c:\python27\lib\site-packages\kivy\core\__init__.py", line 63, in core_select_lib
fromlist=[modulename], level=0)
File "c:\python27\lib\site-packages\kivy\core\camera\camera_gi.py", line 10, in <module>
from gi.repository import Gst
opencv - ImportError: No module named cv2
File "c:\python27\lib\site-packages\kivy\core\__init__.py", line 63, in core_select_lib
fromlist=[modulename], level=0)
File "c:\python27\lib\site-packages\kivy\core\camera\camera_opencv.py", line 48, in <module>
import cv2
您是否在require.txt文件中声明了基维?
还有
15333 INFO: Processing pre-safe import module hook win32com
Traceback (most recent call last):
File "<string>", line 2, in <module>
ImportError: No module named win32com
15411 INFO: Processing pre-safe import module hook win32com
Traceback (most recent call last):
File "<string>", line 2, in <module>
ImportError: No module named win32com
表示缺少库(请参见ImportError: No module named win32com.client)。
那么,您如何声明依赖项?我们需要查看您的项目结构。
答案 1 :(得分:0)
您可以通过在命令提示符下启动脚本来检查完整的追溯。
这可以通过以下方法完成:按WIN
+ R
并写入cmd
,然后使用cd command
更改目录,直到到达文件夹,然后使用{{1} }运行。
例如:
.\<softwarename>.exe
根据经验,这可能是由> cd C:\softwares\test
> pwd
C:\softwares\test
> .\test.exe
引起的。如果这是问题所在,可以在规范的ModuleNotFoundError
列表中添加模块名称。
即:hiddenimports
答案 2 :(得分:0)
问题似乎确实存在于Kivy(https://kivy.org/doc/stable/guide/packaging-windows.html#alternate-installations)中。我修改了.spec文件,并成功构建了该应用程序。
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['simulator.pyw'],
pathex=['C:\\Python27\\Scripts\\Simulator'],
binaries=[],
datas=[('./bin/ui/dynamic_classes.kv', './bin/ui/'), ('./bin/ui/main_layout.kv', './bin/ui/'), ('./bin/ui/text.xml', './bin/ui/'), ('./bin/ui/treatment_adaptive.kv', './bin/ui/'), ('./bin/ui/treatment_classic.kv', './bin/ui/'), ('./bin/ui/treatment_user.kv', './bin/ui/'), ('./bin/ui/icon.ico', './bin/ui/')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=True,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='simulator',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
clean=True,
console=False, icon='bin\\ui\\icon.ico')
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
Tree('C:\\Python27\\share\\sdl2\\bin'),
Tree('C:\\Python27\\share\\glew\\bin'),
strip=False,
upx=True,
upx_exclude=[],
name='simulator')